标签:
Time Limit: 1000MS | Memory Limit: 20000K | |
Total Submissions: 25149 | Accepted: 12329 |
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
Source
#include<iostream> using namespace std; int father[30010]; int input[30010]; int find(int n) { if(father[n]!=n) father[n]=find(father[n]); return father[n]; } void merge(int a,int b) { int x,y; x=find(a); y=find(b); if(x!=y) father[x]=y; } int main() { int n,m,k,num; int i,j; while(1) { cin>>n>>m; for(i=0; i<n; i++) father[i]=i; if(n==0&&m==0) break; while(m--) { cin>>num; for(i=0; i<num; i++) cin>>input[i]; for(i=1; i<num; i++) merge(input[0],input[i]); } int cnt=1; for(i=1; i<n; i++) if(find(father[0])==find(father[i])) cnt++; cout<<cnt<<endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/jasonlixuetao/p/4540179.html