关注
//第一题DFS思路,空间还能优化,没提交,不知道对不对
#include <iostream>
#include <vector>
using namespace std;
int n;
int res;
void dfs(vector<vector<int>>& friends, int x, int y,vector<vector<bool>>& mark){
if(x >= friends.size() || y >= friends[0].size() || x < 0 || y < 0)
return;
if(mark[x][y] == true)
return;
if(friends[x][y] == 0){
mark[x][y] = true;
return;
}
// 对于已经搜索过的点要进行标记
mark[x][y] = true;
res--;
for(int j=1; j<n; j++){
dfs(friends, x, j, mark);
}
}
void minM(vector<vector<int>>& friends) {
if(friends.empty())
return;
res = n;
vector<vector<bool>> vecMark(friends.size(),vector<bool>(friends[0].size(),false));// 定义标记数组
//开始搜索
for(int i = 1;i < friends.size();i++){
for(int j = 1;j < friends[0].size();j++){
if(vecMark[i][j] == true)
continue;
if(friends[i][j] == 0){
vecMark[i][j] = true;
continue;
}
dfs(friends, i, j, vecMark);
}
}
cout << num << endl;
}
int main()
{
cin >> n;
vector<vector<int>> friends(n+1, vector<int>(n+1,0));
int temp = 0;
for(int i=1; i<=n; i++){
int j = 1;
while(cin>>temp){
if(temp == 0)
break;
friends[i][j] = temp;
j++;
}
}
minM(friends);
return 0;
}
查看原帖
点赞 评论
相关推荐
09-23 13:46
河南师范大学 算法工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 怎么给家人解释你的工作? #
11229次浏览 74人参与
# 应届生被毁约被毁意向了怎么办 #
46035次浏览 280人参与
# 快手技术岗信息交流阵地 #
3302次浏览 28人参与
# 你的mentor是什么样的人? #
16162次浏览 110人参与
# 牛客周边新品开箱 #
10371次浏览 90人参与
# 帮我看看,领导说这话什么意思? #
20955次浏览 98人参与
# 求职中的尴尬瞬间 #
3867次浏览 42人参与
# 牛友的志愿填报指南 #
34897次浏览 185人参与
# 国企还是互联网,你怎么选? #
170054次浏览 1273人参与
# 牛客树洞,我想对你说 #
9002次浏览 98人参与
# 机械人集合!你是什么工程师? #
19870次浏览 91人参与
# 如何KTV领导 #
72651次浏览 502人参与
# 大疆工作体验 #
18741次浏览 85人参与
# 今年形式下双非本找得到工作吗 #
237580次浏览 1433人参与
# 三一集团提前批进度交流 #
38379次浏览 225人参与
# 求职低谷期你是怎么度过的 #
12798次浏览 250人参与
# 26届秋招公司红黑榜 #
28196次浏览 115人参与
# 校招泡的最久的公司是哪家? #
12921次浏览 82人参与
# 从哪些方向判断这个offer值不值得去? #
16972次浏览 189人参与
# 得物app工作体验 #
28363次浏览 66人参与
# 大厂无回复,继续等待还是奔赴小厂 #
248098次浏览 1634人参与
查看7道真题和解析