九度 题目1012:畅通工程 (BFS计算连通分支的个数)
来源:互联网 发布:php架构师面试题 编辑:程序博客网 时间:2024/05/22 12:54
用宽搜(bfs)计算图的连通分支的个数bfs_cnt。需要构建的道路的条数为bfs_cnt - 1
代码:
#include <iostream>#include <queue>using namespace std;int n, m, bfs_cnt;bool connect[1010][1010];bool vi[1010];queue<int> q;void init(){for (int i = 1; i <= n; ++ i){vi[i] = false;for (int j = 1; j <= n; ++ j){connect[i][j] = false;}}while (q.empty() == false) { q.pop();}bfs_cnt = 0;cin >> m;for (int i = 0; i < m; ++ i){int a, b;cin >> a >> b;connect[a][b] = connect[b][a] = true;}}void bfs(int index){++ bfs_cnt;q.push(index);while (q.empty() == false){int v = q.front();vi[v] = true;for (int j = 1; j <= n; ++ j){if (vi[j]==false && connect[v][j]){q.push(j);}}q.pop();}}int main(){while (cin >> n, n){init();for (int i = 1; i <= n; ++ i){if (vi[i] == false){bfs(i);}}cout << bfs_cnt - 1 << endl;}return 0;}
0 0
- 九度 题目1012:畅通工程 (BFS计算连通分支的个数)
- 九度OJ 1012 畅通工程 (深度遍历求强连通分量个数)
- 九度OJ 题目1012:畅通工程 (并查集,连通子图)
- 【九度】题目1012:畅通工程
- 九度oj 题目1012:畅通工程
- 九度:题目1012:畅通工程
- 九度 题目1012:畅通工程
- 九度 题目1012:畅通工程
- 九度OJ题目1012:畅通工程
- <九度 OJ>题目1012:畅通工程
- 九度OJ:题目 1012 畅通工程
- 九度OJ-题目1012 畅通工程
- 九度 题目1012:畅通工程
- 【九度OJ】题目1012:畅通工程 解题报告
- 【九度】题目1017:还是畅通工程
- 【九度】题目1024:畅通工程
- 【九度】题目1028:继续畅通工程
- 九度oj 题目1024:畅通工程
- 排序算法三:直接插入排序
- 九度 题目1011:最大连续子序列
- MapReduce 2.0 in Apache Hadoop 0.23
- Impulse Train
- Python CSV初用
- 九度 题目1012:畅通工程 (BFS计算连通分支的个数)
- protocol buffer使用范例5
- java 使用 comet4j 主动向客户端推送信息 简单例子
- 图像mask区域加亮
- 深入浅出理解和学习javascript
- 在Linux下adb连接不上android手机的终极解决方案
- java爬取网页内容 简单例子(1)——使用正则表达式
- 页面缓存
- xfire生成webservice,Android利用ksoap2访问webservice 之 服务器搭建