Description

某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?

Input

测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。
注意:两个城市之间可以有多条道路相通,也就是说
3 3
1 2
1 2
2 1
这种输入也是合法的
当N为0时,输入结束,该用例不被处理。

Output

对每个测试用例,在1行里输出最少还需要建设的道路数目。

Sample Input

4 2
1 3
4 3
3 3
1 2
1 3
2 3
5 2
1 2
3 5
999 0
0

Sample Output

1
0
2
998
#include <stdio.h>
#include <string.h>bool a[1002][1002];
bool vd[1002];
int n;void dfs(int v){for (int i = 1; i <= n; i++){if (!vd[i] && a[v][i]){vd[i] = true;dfs(i);}}
}int main()
{int m;int x, y;int cnt;while (~scanf("%d", &n) && n != 0){scanf("%d", &m);memset(a, 0, sizeof(a));memset(vd, 0, sizeof(vd));for (int i = 0; i < m; i++){scanf("%d %d", &x, &y);a[x][y] = a[y][x] = true;}cnt = 0;for (int i = 1; i <= n; i++){if (!vd[i]){vd[i] = true;cnt++; // 计算连通块数dfs(i);}}printf("%d\n", cnt-1); // 连通块数 减一}return 0;
}

HDU - 1232 畅通工程 【连通块】相关推荐

  1. HDU 1232畅通工程

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. HDU 1232 - 畅通工程

    畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只 ...

  3. [ACM] hdu 1232 畅通工程(并查集)

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...

  4. hdu 1232 畅通工程

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...

  5. HDU 1232 -畅通工程(并查集)

    题目 http://acm.hdu.edu.cn/showproblem.php?pid=1232 代码 #include <iostream> #include <algorith ...

  6. hdu 1232 畅通工程 最小生成树 并查集

    1232的连接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include <iostream>#include <cstdio& ...

  7. 并查集 HDOJ 1232 畅通工程

    题目传送门 1 /* 2 并查集(Union-Find)裸题 3 并查集三个函数:初始化Init,寻找根节点Find,连通Union 4 考察:连通边数问题 5 */ 6 #include <c ...

  8. 杭电1232 畅通工程

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...

  9. HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:          http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...

最新文章

  1. git的基本使用命令操作
  2. c# Ajax后台动态分页
  3. 【leetcode】
  4. k8s master节点参与调度(去除NoSchedule污点)
  5. AtCoderGC038B - Sorting a Segment 数据结构 + RMQ
  6. 从零开始学电脑办公_每天学一点 7天学会使用电脑办公操作
  7. C语言丨格式化屏幕输出(二)——日历
  8. Delphi中Chrome Chromium、Cef3学习笔记(三)
  9. xp系统设置锁定计算机,XP系统电脑如何设置自动锁屏?
  10. MAXWELL软件的初步使用
  11. DIY智能车赛优胜奖开源作品——手机遥控麦克纳姆轮小车(1)
  12. jsoniter与原生json对比
  13. 能耗分项计量监测系统在某大型公建中的应用
  14. Android日历阴阳历转换的实现(包括日期选择器)
  15. 二、T100库存杂收、杂发、报废管理篇
  16. 什么?你居然不会微信分身
  17. 驱动程序开发:无设备树和有设备树的platform驱动
  18. 【苦练基本功】代码整洁之道 pt3(第7章-第9章)
  19. android开发语言列表及对应简写
  20. 移植Linux-3.4.2过程学习笔记1——串口打印乱码问题

热门文章

  1. 携程校招Java岗位面经(二面)
  2. QT 操作excel 类封装(转载)
  3. 模块化思想重写之前写的My97DatePicker的例子
  4. python 饼状图的生成
  5. 顾往前行,我的前端之路系列(三)
  6. vc c语言 五子棋,VC实现五子棋游戏的一个算法示例
  7. 第一个Ruby程序,Hello Ruby
  8. 软件测试----测试用例
  9. PTA:找密码(C语言)
  10. 服务器如何解压zip文件,ECS Linux 服务器解压zip格式文件操作方法