HDU1232畅通工程
Posted 上进小青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU1232畅通工程相关的知识,希望对你有一定的参考价值。
http://acm.split.hdu.edu.cn/showproblem.php?pid=1232
1 ///1232 2 #include<stdio.h> 3 #include<string.h> 4 #include<iostream> 5 #include<algorithm> 6 using namespace std; 7 const int M=1005; 8 int fa[M]; 9 int fin(int x){ 10 return fa[x]==x?fa[x]:fa[x]=fin(fa[x]); 11 } 12 int unin(int x,int y){ 13 return fa[fin(y)]=fin(x); 14 } 15 int main(){ 16 int m,n; 17 while(cin>>m>>n&&m){ 18 memset(fa,0,sizeof(fa)); 19 for(int i=0;i<m;i++){ 20 fa[i]=i; 21 } 22 int a,b; 23 for(int i=0;i<n;i++){ 24 scanf("%d%d",&a,&b); 25 unin(a,b); 26 } 27 int temp=0; 28 for(int i=0;i<m;i++){ 29 if(fa[i]==i){ 30 temp++; 31 } 32 } 33 cout<<temp-1<<endl;///在最后输出的是temp-1的原因是,temp的构成是树的根点 34 ///是fa[i]=i+其余的点是未被连接进并查集的点 35 } 36 }
以上是关于HDU1232畅通工程的主要内容,如果未能解决你的问题,请参考以下文章