hdu 1232水

#include<stdio.h>
#define N 1000
int pre[N];
int find(int n ){
return pre[n]=n==pre[n]?n:find(pre[n]);
}
int main() {
int n,m,a,b,i,cnt,f1,f2;
while(scanf("%d",&n),n) {
scanf("%d",&m);
for(i=1;i<=n;i++)
pre[i]=i;
while(m--) {
scanf("%d%d",&a,&b);
f1=find(a);
f2=find(b);
if(f1!=f2)
pre[f2]=f1;
}
cnt=0;
for(i=1;i<=n;i++)
if(pre[i]==i)
cnt++;
printf("%d\n",cnt-1);
}
return 0;
}
posted @ 2013-10-30 18:59  HYDhyd  阅读(123)  评论(0编辑  收藏  举报