关注
//第一题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;
}
查看原帖
点赞 评论
相关推荐
爱睡觉的冰箱哥:最难的是第一段吧,有一段其实很好找
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
33522次浏览 672人参与
# 百度工作体验 #
221524次浏览 1967人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
27006次浏览 213人参与
# 秋招什么时候开投比较合适? #
21353次浏览 298人参与
# 发工资后,你做的第一件事是什么 #
67905次浏览 229人参与
# 实习,不懂就问 #
44328次浏览 665人参与
# 如何准备秋招 #
19281次浏览 367人参与
# 机械人与华为的爱恨情仇 #
116646次浏览 945人参与
# 机械人集合!你是什么工程师? #
15598次浏览 89人参与
# 找不到好工作选择GAP真的丢人吗 #
77970次浏览 938人参与
# 工作中哪个瞬间让你想离职 #
25683次浏览 177人参与
# 快手求职进展汇总 #
546766次浏览 6001人参与
# 硬件应届生薪资是否普遍偏低? #
73836次浏览 514人参与
# 不考虑转正,实习多久合适 #
31926次浏览 145人参与
# 你们公司几号发工资 #
20842次浏览 140人参与
# 多益网络求职进展汇总 #
29015次浏览 134人参与
# 软开人,秋招你打算投哪些公司呢 #
102733次浏览 958人参与
# 每个月的工资都是怎么分配的? #
26923次浏览 422人参与
# 你觉得现在还能进互联网吗? #
8114次浏览 132人参与
# 面试中,你被问过哪些奇葩问题? #
68327次浏览 796人参与
# 元戎启行求职进展汇总 #
32531次浏览 240人参与