poj1611 The Suspects (并查集)
2012-07-26 01:01
363 查看
题目链接:http://poj.org/problem?id=1611
//非常基础的并查集 可以参考http://www.cnblogs.com/cherish_yimi/archive/2009/10/11/1580839.html
//非常基础的并查集 可以参考http://www.cnblogs.com/cherish_yimi/archive/2009/10/11/1580839.html
#include<iostream> using namespace std; int f[30000],rank[30000]; void makeset(int x) { int i; for(i=0;i<x;i++) f[i]=i,rank[i]=0; } int findset(int x) { if(x!=f[x]) f[x]=findset(f[x]); return f[x]; } void unionset(int a,int b) { int fa=findset(a); int fb=findset(b); if(rank[fa]>rank[fb])f[fb]=fa; else { if(rank[fa]==rank[fb])rank[fb]++; f[fa]=fb; } } int main() { int n,m; while(cin>>n>>m,n||m) { int cnt=1;//′ú±í?Dè?êy int i,j; makeset(n); for(i=0;i<m;i++) { int t,a,b; cin>>t; cin>>a; for(j=1;j<t;j++) { cin>>b; unionset(a,b); a=b; } } int st=findset(0); for(i=1;i<n;i++) if(st==findset(i)) cnt++; cout<<cnt<<endl; } return 0; }
相关文章推荐
- POJ1611 The Suspects(并查集)
- 【POJ1611】The Suspects(并查集)
- poj1611(The Suspects)-并查集基础题
- poj1611 The Suspects(基础并查集)
- [POJ1611]The Suspects(并查集)
- POj1611:The Suspects(并查集)
- POJ1611(The Suspects)又见并查集
- POJ1611 The Suspects(并查集)
- poj1611 the suspects(并查集)
- 并查集基础题 POJ1611 POJ1703 POJ1988
- 并查集 The Suspects
- poj1611 The Suspects 并查集
- [POJ](1611)The Suspects ---- 并查集
- poj1611(并查集)
- poj 1611 The Suspects(简单并查集)
- [并查集]POJ 1611 The Suspects
- poj-1611-The Suspects(水并查集)
- POJ 1611 The Suspects (并查集)
- 【裸的并查集】POJ 1611 The Suspects
- POJ1611 The Suspects(并查集)