06-图1 列出连通集
06-图1 列出连通集(25 分)
给定一个有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 <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 列出连通集
全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案汇总 题目:给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行 ...
- 06-图1 列出连通集 —— 非联通图的DFS与BFS
06-图1 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−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-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-2 列出连通集 (25 分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...
- 列出连通集(java)
7-6 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序 ...
- linux 树状结构图,linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录...
tree命令,主要功能是创建文件列表,将所有文件以树的形式列出来 linux下的tree就比较强大了,但一般系统并不自带这个命令,需要手动下载安装, 安装 sudo apt install tree ...
最新文章
- 小手段:开启 GNOME 的窗口分组效果
- AI安全最全“排雷图”来了!腾讯发布业内首个AI安全攻击矩阵
- 怎么选择数据服务器?请记住这五条
- MySQL 四种事务隔离级别详解及对比--转
- Unity SRP自定义渲染管线 -- 1.Custom Pipeline
- oracle recover redo,oracle redo log日志(当前或非当前日志)损坏之后的db恢复
- 求二进制数中1的个数(转)
- wildfly-9.0.2 web项目部署详细步骤
- CSDN新版下载频道介绍之二——上传和下载资源页面介绍
- 如何下载英文原版书籍资料
- 2021-eclipse的安装及环境配置
- IGS发布RINEX 4.00
- 如何在EXCEL表格中加斜线表头
- 携手业内专家赋能AI时代--EpiK铭识协议发起开源知识运动
- 登录邮箱显示imap服务器错误,qq邮箱登陆不了显示imap服务器关闭怎么办
- 港科夜闻|全国政协副主席梁振英先生率香港媒体高管团到访香港科大(广州)...
- 关于瞎报Access violation writing location异常的瞎解决方法
- jstree中文github文档
- ggplot2 | R语言绘制世界地图choropleth
- 面向商业市场,华为式“抢滩登陆”
热门文章
- C语言实现x的n次方
- Datawhale组队-Pandas(下)文本数据(打卡)
- python做硬件自动化测试-用python做自动化测试--Python实现远程性能监控
- 论文阅读 - Jukebox: A Generative Model for Music
- LeetCode MySQL 1623. 三人国家代表队
- LeetCode 1813. 句子相似性 III
- LeetCode MySQL 1549. The Most Recent Orders for Each Product
- LeetCode 962. 最大宽度坡(单调栈)
- 程序员面试金典 - 面试题 17.16. 理发师(动态规划DP)
- 基于感知机Perceptron的鸢尾花分类实践