标签:
Description
Input
Output
Sample Input
100 4 2 1 2 5 10 13 11 12 14 2 0 1 2 99 2 200 2 1 5 5 1 2 3 4 5 1 0 0 0
Sample Output
4 1 1
#include <cstdio> int pa[300000],a,n,num[100000]; int cha(int k) { if(pa[k]!=k) { pa[k]=cha(pa[k]); } return pa[k]; } bool bing(int x,int y) { int x2=cha(x); int y2=cha(y); if(x2==y2) return false; pa[y2]=x2;//把他们都连在一起 num[x2]+=num[y2];//num用作累计结点个数 return true; } void init(int n) { for(int i=0; i<=n; i++) { pa[i]=i; num[i]=1; } return ; } int main() { int m,n,k,t; while(scanf("%d%d",&n,&m)) { init(n); if(m+n==0) { break; } for(int i=0; i<m; i++) { scanf("%d",&k); scanf("%d",&t); for(int j=1; j<k; j++) { scanf("%d",&a); bing(t,a); } } printf("%d\n",num[cha(0)]);//查出祖宗为0的结点个数 } return 0; }
标签:
原文地址:http://www.cnblogs.com/tianmin123/p/4620653.html