POJ 1161
2012-09-23 20:16
309 查看
第一道并查集,47ms ,还是很慢啊,不过是绞尽脑汁,调试了n次,做出来的,思路还是挺清晰地
#include <iostream> using namespace std; const int maxn=30010; int parent[maxn]; int amount[maxn]; int rank[maxn]; int n,m; void init() { for(int i=0;i<n;i++) { parent[i]=i; amount[i]=1; rank[i]=0; } } int find(int t) { if(parent[t]!=t) return(find(parent[t])); return t; } void Union(int r1,int r2) { if(rank[r1]>rank[r2]) { parent[r2]=r1; amount[r1]+=amount[r2]; } else { parent[r1]=r2; amount[r2]+=amount[r1]; if(rank[r1]==rank[r2]) rank[r2]++; } } int main() { while(scanf("%d%d",&n,&m)&&!(n==0&&m==0)) { init(); int i,j=0,g,f,r1,r2,t; for(i=0;i<m;i++) { cin>>g; if(g) { cin>>f; for(j=1;j<g;j++) { cin>>t; r1=find(f); r2=find(t); if(r1!=r2) { Union(r1,r2); } } } } int outcome=find(0); cout<<amount[outcome]<<endl; } return 0; }
相关文章推荐
- poj 1161
- POJ 1161 Walls(二分图匹配)
- poj1161 Walls
- poj 1161 The Suspects
- POJ 1161 并查集
- poj1161 walls floyd算法+把面当结点建图
- poj1161 The Suspects
- POJ 1161 Help Jimmy
- POJ 1161 Floyd 构图
- poj 1161 最短路构图
- poj 1161 Walls floyd算法
- poj 1161
- POJ 1161 Help Jimmy(逆向思维的DP + 记忆化搜索总结)
- POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)
- POJ1161(并查集)
- POJ 1161 walls
- 【动态规划】POJ 1161 & ZOJ1463 & XMU 1033 Brackets sequence
- POJ 1161 WALLS (FLOYD)
- POJ 1161 Walls(floyd最短路)#by zh
- poj 1161 walls