题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232

畅通工程

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 31088    Accepted Submission(s):
16354

Problem 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
 
Hint

Hint

Huge input, scanf is recommended.
 

题目大意:按照要求,输出最少需要建的道路条数。间接和直接使道路相连均可。并查集,相当于模板吧,不多说,详见代码。

 #include <iostream>
#include <cstdio>
using namespace std;
int father[],sum;
void set(int n)
{
for (int i=; i<=n; i++)
father[i]=i;
}
int find(int a)
{
if (father[a]==a)
return a;
return father[a]=find(father[a]);
}
void Union(int x,int y)
{
x=find(x);
y=find(y);
if (x!=y)
{
sum--;
father[x]=y;
}
}
int main ()
{
int n,m;
while (scanf("%d",&n),n)
{
scanf ("%d",&m);
set(n);
sum=n-;
while (m--)
{
int a,b;
scanf("%d%d",&a,&b);
Union(a,b);
}
printf ("%d\n",sum);
}
return ;
}

最新文章

  1. Restful WebApi项目开发实践
  2. Entity Framework 代码先行
  3. Angular2 模板语法
  4. Spark机器学习读书笔记-CH03
  5. C++生成二级制文件过程(预处理-&gt;编译-&gt;链接 )
  6. [工作中的设计模式]适配器模式adapter
  7. Photoshop CS6 for Mac简体中文正式 完美破解版 支持Retina屏
  8. Linux第五次实验
  9. 无状态Web应用集成——《跟我学Shiro》
  10. cadence 焊盘制作小结
  11. Windows8安装Oracle11.2.0.1-0624,附带 DBCA建库、netca创建监听、配置PLSQL、定义客户端的环境变量 NLS_LANG、定义客户端的环境变量 TNS_ADMIN01
  12. js各种验证文本框输入格式
  13. Android textview 设置不同的字体大小和颜色
  14. Asp.net vNext 2
  15. Chrome 开发工具 Workspace 使用
  16. 数据结构 单链表元素定位 PTA
  17. Android Studio INSTALL_FAILED_UID_CHANGED 错误
  18. Mybatis框架基础支持层——日志模块(8)
  19. 微信小程序swiper 前后边距的使用
  20. 有哪些api接口可以实现微信自动唤醒浏览器,下载app,打开网页

热门文章

  1. 【转载】Windows下Mysql5.7开启binlog步骤及注意事项
  2. C# lamda表达式
  3. window.navigator.standalone 检测iOS WebApp是否运行在全屏模式
  4. WPF如何将数据库中的二进制图片数据显示在Image控件上
  5. RT-thread内核之空闲线程
  6. mac终端命令-----常规操作
  7. 【bzoj3732】Network 最小生成树+倍增LCA
  8. BZOJ4770 图样(概率期望+动态规划)
  9. hdu 1848(Fibonacci again and again)(SG博弈)
  10. [Leetcode] maximun subarray 最大子数组