标签:
4 2 1 3 4 3 3 3 1 2 1 3 2 3 5 2 1 2 3 5 999 0 0
1 0 2 998
#include<stdio.h> int c,n; int a[1010]; void f() { int i; for(i=1;i<=c;i++) a[i]=i; } int find(int x) { int r=x; while(r!=a[r]) r=a[r]; a[x]=r; return r; } void join(int x,int y) { int fx=find(x); int fy=find(y); if(fx!=fy) a[fx]=fy; } int main() { // int c; while(scanf("%d",&c)!=EOF) { if(c==0) break; f(); int q,w; scanf("%d",&n); // int w,q; // for(int i=1;i<=n;i++; while(n--) { scanf("%d%d",&w,&q); join(w,q); } int ans=0; for(int i=1;i<=c;i++) if(a[i]==i) ans++; printf("%d\n",ans-1); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/l15738519366/article/details/47131799