立志用最少的代码做最高效的表达


给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。

输入格式:
输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。

输出格式:
按照"{ v1 v​2 … v​k }"的格式,每行输出一个连通集。先输出DFS的结果,再输出BFS的结果。

输入样例:
8 6
0 7
0 1
2 0
4 1
2 4
3 5

输出样例:
{ 0 1 4 2 7 }
{ 3 5 }
{ 6 }
{ 0 1 2 7 4 }
{ 3 5 }
{ 6 }


深搜广搜模板题

具体逻辑见代码即可。

有不懂的请在评论区留言~


#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;const int maxn = 15;
int G[maxn][maxn], vis[maxn];
int n, k;void dfs(int step) {for(int i = 0; i < n; i++) if(!vis[i] && G[step][i]) {vis[i] = 1;cout << ' ' << i;dfs(i);}
}void bfs(int step) {queue<int>q;q.push(step);while(!q.empty()) {int x = q.front(); q.pop();for(int i = 0; i < n; i++) if(!vis[i] && G[x][i]) {vis[i] = 1;cout << ' ' << i;q.push(i);}}
} int main() {cin >> n >> k;//DFS部分 //赋值 for(int i = 0; i < k; i++) {int x, y; cin >> x >> y;G[x][y] = G[y][x] = 1;}//遍历 for(int i = 0; i < n; i++) {if(vis[i] == 0) {vis[i] = 1;cout << "{ " << i;dfs(i); cout << " }\n";}}//bfs部分 //初始化memset(vis, 0, sizeof(vis));for(int i = 0; i < n; i++) {if(vis[i] == 0) {vis[i] = 1;cout << "{ " << i;bfs(i);cout << " }\n";}} return 0;
}

耗时


获得正确认识,不仅是和实践的关系,还有“和感觉,思维”的关系,单只实践仍得不到正确认识的。      ——林彪

列出连通集 (25 分)【DFS与BFS模板】相关推荐

  1. 7-201 列出连通集 (25 分)

    7-201 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的 ...

  2. 7-2 列出连通集 (25分)

    文章目录 7-2 列出连通集 (25分) 输入格式: 输出格式: 输入样例: 输出样例: 题解 伪代码 代码 7-2 列出连通集 (25分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别 ...

  3. 7-6 列出连通集 (25 分)(C语言实现)

    给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...

  4. 7-2 列出连通集 (25 分)

    给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...

  5. 7-6 列出连通集 (25 分)(详解)

    列出连通集 1:思路 : 利用了邻接矩阵储存数据并建图,然后就是 DFS遍历和BFS遍历 只不过是本题需要输出的是非连通图 连通分量 外加俩函数搞定 2:上码 #include<bits/std ...

  6. 7-5 列出连通集 (6 分)

    7-5 列出连通集 (6 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访 ...

  7. 7-121 深入虎穴 (25 分)(dfs,bfs)

    7-121 深入虎穴 (25 分) 著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一 ...

  8. 7-20 电话聊天狂人(25 分)(Hash模板)

    7-20 电话聊天狂人(25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​),为通话记录条数.随后N行,每行给出一条通话记录.简单 ...

  9. 最短工期 (25 分)【拓扑排序模板】

    立志用最少的代码做最高效的表达 一个项目由若干个任务组成,任务之间有先后依赖顺序.项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务.现给定一个项目中各个任务之间的关 ...

最新文章

  1. WiFi攻击的三种方式
  2. 【ARM】arm串行通信
  3. golang 将word转为pdf_如何将word转化为pdf格式
  4. 鸿蒙系统系列教程3-鸿蒙OS的技术特征讲解
  5. 从零开始发布自己的NPM包
  6. 交钱赎“人”!B站500万粉UP主被黑客勒索,腾讯都表示无解
  7. 5、自写<VBA函数>关于字体与单元格颜色、大小的函数
  8. 电脑主机前面的耳机插孔没声音怎么办
  9. PE破解操作系统密码原理
  10. 一个孩子的心愿(大冰,感动)
  11. android 加载第三方so文件,Uni-app 以Module方式开发Android插件,引入第三方资源包so文件,但无法读取...
  12. 绘画教程:日式温泉场景怎么画?露天浴场的正确画法!
  13. 微博服务器瘫痪容易修复吗,微博服务器九次瘫痪,还有一个竟然连崩四回,程序员:放过我吧!...
  14. FA 镜头 工作距离 焦距及视野计算和结果
  15. ios严格检验身份证号码有效性
  16. 融合通信技术趋势和演进方向 | QCon2021云信专场
  17. 白菜u盘安装linux,使用U盘安装ubuntu 12.04(使用大白菜u盘启动工具)
  18. SignalTap II 之 Power-Up Trigger
  19. 香港证券监管机构呼吁加密监管以应对欺诈行为
  20. 【黑客免杀攻防】读书笔记1 - 初级免杀基础理论(反病毒软件特征码提取介绍、免杀原理、壳)...

热门文章

  1. 菜鸟网络技术专家:技术架构的战略和战术原则
  2. 设计模式:享元模式(Flyweight)
  3. 给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数
  4. 公网传输技术之SRT协议解析(上)
  5. RTP之H264封包和解包
  6. 学习方法之02掌握记忆方法,在学习上就赢了一半
  7. Mdebug:基于React开发的移动web调试工具
  8. 实习生招聘 | TEG 2019年暑期实习生招聘正式启动
  9. 首届中国服务创新大会在深举办 助力产业智慧升级
  10. 数平精准推荐 | OCR技术之数据篇