C語言源碼: [cpp] #include<stdio.h> #define maxsize 1010 int Tree[maxsize]; int findroot(int x) { int temp; if(Tree[x]==-1) return x; else { temp=findroot(Tree[x]); Tree[x]=temp; return temp; } } int main() { int t,n,m,a,b,i,num; while(scanf("%d",&t)!=EOF) { while(t--) { scanf("%d %d",&n,&m); for(i=0;i<n;i++) Tree[i]=-1; while(m--) { scanf("%d %d",&a,&b); a--; b--; a=findroot(a); b=findroot(b); if(a!=b) Tree[b]=a; } www.2cto.com num=0; for(i=0;i<n;i++) if(Tree[i]==-1) num++; printf("%d\n",num); } } }