//发现还是思想最重要 看懂了思想 代码就容易懂了。。
#include <stdio.h> int fa[1005]; int find(int x) { if(fa[x]!=x) fa[x]=find(fa[x]); return fa[x]; } void comb(int a,int b) { fa[find(fa[a])]=find(fa[b]); } int main() { int n,m,a,b; while(scanf("%d",&n)&&n) { scanf("%d",&m); for(int i=1;i<=n;i++) fa[i]=i; for(int i=0;i<m;i++) { scanf("%d %d",&a,&b); comb(a,b); } int sum=0; for(int i=1;i<=n;i++) if(fa[i]==i) sum++; printf("%d\n",sum-1); } return 0; }
时间: 2024-10-26 13:41:37