标签:实现 还需 利用 include 调查 查找 code scan 统计
Description
Input
Output
Sample Input
Sample Output
1 #include<stdio.h> 2 int pre[1010]; 3 int findx(int x)///查找根节点 4 { 5 int a; 6 a=x; 7 while(pre[a]!=a) 8 { 9 a=pre[a]; 10 } 11 return a; 12 } 13 void combine(int root1,int root2)///合并路线 14 { 15 int x,y; 16 x=findx(root1); 17 y=findx(root2); 18 if(x!=y) 19 { 20 pre[x]=y; 21 } 22 } 23 int main() 24 { 25 int n,m,i,x,y,count; 26 while(scanf("%d%d",&n,&m)!=EOF) 27 { 28 if(n==0) 29 { 30 break; 31 } 32 count=0; 33 for(i=1; i<=n; i++) 34 { 35 pre[i]=i;///初始化 36 } 37 while(m--) 38 { 39 scanf("%d%d",&x,&y); 40 combine(x,y); 41 } 42 for(i=1;i<=n;i++) 43 { 44 if(pre[i]==i)///统计利用并查集将各个城镇分成的集合的个数 45 { 46 count++; 47 } 48 } 49 printf("%d\n",count-1);///若有n个集合那么便要新建n-1条通路 50 } 51 return 0; 52 }
标签:实现 还需 利用 include 调查 查找 code scan 统计
原文地址:https://www.cnblogs.com/wkfvawl/p/9125352.html