HDU 1232 畅通工程
来源:互联网 发布:阜宁县网络发言人平台 编辑:程序博客网 时间:2024/06/06 01:25
畅通工程
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37162 Accepted Submission(s): 19699
注意:两个城市之间可以有多条道路相通,也就是说
3 3
1 2
1 2
2 1
这种输入也是合法的
当N为0时,输入结束,该用例不被处理。
4 21 34 33 31 21 32 35 21 23 5999 00
102998Huge input, scanf is recommended.HintHint
最简单的并查集
#include<stdio.h>
#define max 1000+10
int set[max];//set[i]表示第i个元素的父节点
int find(int parent)//找根节点
{
int child=parent;
int t;
while(parent!=set[parent])
//没有父节点的节点是根节点,所以根节点的父节点还是他自己
{
parent=set[parent];//根节点
}
while(child!=parent)//路径压缩
{
t=set[child];
set[child]=parent;
child=t;
}
return parent;//找到根节点
}
void merge(int x,int y)
{
int fx,fy;
fx=find(x);
fy=find(y);
if(fx!=fy)//根节点不一样,合并
set[fx]=fy;
}
int main()
{
int city,road;
int need;//需要建设道路数
int i,x,y;
while(scanf("%d",&city)!=EOF&&city)
{
for(i=1;i<=city;i++)
{
set[i]=i;//初始化
}
scanf("%d",&road);
for(i=1;i<=road;i++)
{
scanf("%d%d",&x,&y);
merge(x,y);//合并已有道路
}
need=0;
for(i=1;i<=city;i++)
{
if(set[i]==i)
{
need++;
}
}
printf("%d\n",need-1);//因为还有树的根节点,多算了一个
}
return 0;
}
- Hdu-1232 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- HDU 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- Hdu 1232 畅通工程
- HDU-1232:畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- hdu - 1232 - 畅通工程
- hdu 1232 畅通工程
- hdu 1232畅通工程
- hdu 1232 畅通工程
- HDU 1232 畅通工程
- 线段树_HDU_1754
- Android ndk 单步调试
- 关于caffe-windows中 compute_image_mean.exe出现的问题
- 效率极低人群之七大习惯------写得很透彻
- 关于iOS push一些问题的理解
- HDU 1232 畅通工程
- 测试人员如何减少产品的遗留bug
- Spark Streaming 流计算优化记录(3)-控制流量与join的地点
- Android完全退出程序
- POJ - 2115 - C Looooops (扩展欧几里得)
- 暑假习题 五
- 图像分割(大律法 OSTU法)
- 新特性
- 挂载ubifs文件系统分区