06-图1 列出连通集(25 分)

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

输入格式:

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

输出格式:

按照"{ v​1​​ 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 <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <functional>#define mod 1000000007
const int INF = 0x7f7f7f7f;
typedef long long ll;
const int maxn = 10050;
using namespace std;int m, n;
bool mp[15][15];
bool visd[15];
bool visb[15];void dfs(int x)
{visd[x] = true;printf("%d ", x);for(int i = 0; i < m; i++){if(mp[x][i] && !visd[i])dfs(i);}
}
void bfs(int x)
{queue<int> que;que.push(x);visb[x] = true;while(!que.empty()){int n = que.front();que.pop();printf("%d ", n);for(int i = 0; i < m; i++){if(mp[n][i] && !visb[i]){visb[i] = true;que.push(i);}}}}
int main()
{scanf("%d%d", &m, &n);memset(mp, 0, sizeof(mp));memset(visb, 0, sizeof(visb));memset(visd, 0, sizeof(visd));while(n--){int t1, t2;scanf("%d%d", &t1, &t2);mp[t1][t2] = true;mp[t2][t1] = true;}for(int i = 0; i < m; i++){if(!visd[i]){printf("{ ");dfs(i);printf("}\n");}}for(int i = 0; i < m; i++){if(!visb[i]){printf("{ ");bfs(i);printf("}\n");}}return 0;
}

转载于:https://www.cnblogs.com/focus5679/p/9286137.html

06-图1 列出连通集相关推荐

  1. 算法 图1 列出连通集

    全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案汇总 题目:给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行 ...

  2. 06-图1 列出连通集 —— 非联通图的DFS与BFS

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

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

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

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

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

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

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

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

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

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

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

  8. 列出连通集(java)

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

  9. linux 树状结构图,linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录...

    tree命令,主要功能是创建文件列表,将所有文件以树的形式列出来 linux下的tree就比较强大了,但一般系统并不自带这个命令,需要手动下载安装, 安装 sudo apt install tree ...

最新文章

  1. 小手段:开启 GNOME 的窗口分组效果
  2. AI安全最全“排雷图”来了!腾讯发布业内首个AI安全攻击矩阵
  3. 怎么选择数据服务器?请记住这五条
  4. MySQL 四种事务隔离级别详解及对比--转
  5. Unity SRP自定义渲染管线 -- 1.Custom Pipeline
  6. oracle recover redo,oracle redo log日志(当前或非当前日志)损坏之后的db恢复
  7. 求二进制数中1的个数(转)
  8. wildfly-9.0.2 web项目部署详细步骤
  9. CSDN新版下载频道介绍之二——上传和下载资源页面介绍
  10. 如何下载英文原版书籍资料
  11. 2021-eclipse的安装及环境配置
  12. IGS发布RINEX 4.00
  13. 如何在EXCEL表格中加斜线表头
  14. 携手业内专家赋能AI时代--EpiK铭识协议发起开源知识运动
  15. 登录邮箱显示imap服务器错误,qq邮箱登陆不了显示imap服务器关闭怎么办
  16. 港科夜闻|全国政协副主席梁振英先生率香港媒体高管团到访香港科大(广州)...
  17. 关于瞎报Access violation writing location异常的瞎解决方法
  18. jstree中文github文档
  19. ggplot2 | R语言绘制世界地图choropleth
  20. 面向商业市场,华为式“抢滩登陆”

热门文章

  1. C语言实现x的n次方
  2. Datawhale组队-Pandas(下)文本数据(打卡)
  3. python做硬件自动化测试-用python做自动化测试--Python实现远程性能监控
  4. 论文阅读 - Jukebox: A Generative Model for Music
  5. LeetCode MySQL 1623. 三人国家代表队
  6. LeetCode 1813. 句子相似性 III
  7. LeetCode MySQL 1549. The Most Recent Orders for Each Product
  8. LeetCode 962. 最大宽度坡(单调栈)
  9. 程序员面试金典 - 面试题 17.16. 理发师(动态规划DP)
  10. 基于感知机Perceptron的鸢尾花分类实践