列出连通集 (25 分)【DFS与BFS模板】
立志用最少的代码做最高效的表达
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。
输入格式:
输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。
输出格式:
按照"{ v1 v2 … vk }"的格式,每行输出一个连通集。先输出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模板】相关推荐
- 7-201 列出连通集 (25 分)
7-201 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的 ...
- 7-2 列出连通集 (25分)
文章目录 7-2 列出连通集 (25分) 输入格式: 输出格式: 输入样例: 输出样例: 题解 伪代码 代码 7-2 列出连通集 (25分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别 ...
- 7-6 列出连通集 (25 分)(C语言实现)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...
- 7-2 列出连通集 (25 分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...
- 7-6 列出连通集 (25 分)(详解)
列出连通集 1:思路 : 利用了邻接矩阵储存数据并建图,然后就是 DFS遍历和BFS遍历 只不过是本题需要输出的是非连通图 连通分量 外加俩函数搞定 2:上码 #include<bits/std ...
- 7-5 列出连通集 (6 分)
7-5 列出连通集 (6 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访 ...
- 7-121 深入虎穴 (25 分)(dfs,bfs)
7-121 深入虎穴 (25 分) 著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一 ...
- 7-20 电话聊天狂人(25 分)(Hash模板)
7-20 电话聊天狂人(25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤105),为通话记录条数.随后N行,每行给出一条通话记录.简单 ...
- 最短工期 (25 分)【拓扑排序模板】
立志用最少的代码做最高效的表达 一个项目由若干个任务组成,任务之间有先后依赖顺序.项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务.现给定一个项目中各个任务之间的关 ...
最新文章
- WiFi攻击的三种方式
- 【ARM】arm串行通信
- golang 将word转为pdf_如何将word转化为pdf格式
- 鸿蒙系统系列教程3-鸿蒙OS的技术特征讲解
- 从零开始发布自己的NPM包
- 交钱赎“人”!B站500万粉UP主被黑客勒索,腾讯都表示无解
- 5、自写<VBA函数>关于字体与单元格颜色、大小的函数
- 电脑主机前面的耳机插孔没声音怎么办
- PE破解操作系统密码原理
- 一个孩子的心愿(大冰,感动)
- android 加载第三方so文件,Uni-app 以Module方式开发Android插件,引入第三方资源包so文件,但无法读取...
- 绘画教程:日式温泉场景怎么画?露天浴场的正确画法!
- 微博服务器瘫痪容易修复吗,微博服务器九次瘫痪,还有一个竟然连崩四回,程序员:放过我吧!...
- FA 镜头 工作距离 焦距及视野计算和结果
- ios严格检验身份证号码有效性
- 融合通信技术趋势和演进方向 | QCon2021云信专场
- 白菜u盘安装linux,使用U盘安装ubuntu 12.04(使用大白菜u盘启动工具)
- SignalTap II 之 Power-Up Trigger
- 香港证券监管机构呼吁加密监管以应对欺诈行为
- 【黑客免杀攻防】读书笔记1 - 初级免杀基础理论(反病毒软件特征码提取介绍、免杀原理、壳)...