poj 1611 The Suspects(并查集)
2015-12-17 18:37
246 查看
The Suspects
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 0Sample Output 4 1 1SourceAsia Kaohsiung 2003 |
#include <iostream> #include<cstdio> using namespace std; const int Max=300010; int p[Max],rank[Max]; int num[Max];//元素个数 int Find_Set(int x) { if (x!=p[x]) p[x]=Find_Set(p[x]); return p[x]; } void Union(int x,int y) { x=Find_Set(x); y=Find_Set(y); if(x==y) return; if (rank[x]>rank[y]) { p[y]=x; num[x]+=num[y]; } else { p[x]=y; if (rank[x]==rank[y]) rank[x]++; num[y]+=num[x]; } } int main() { int i,j,k,n,m; int a,b; int s1,s2; while (cin>>n>>m) { if(n==0&&m==0) { break; } for (i=0;i<n;i++) { p[i]=i; rank[i]=0; num[i]=1; } for (i=0;i<m;i++) { cin>>k>>a; for (j=1;j<k;j++) { cin>>b; s1=Find_Set(a); s2=Find_Set(b); Union(s1,s2); } } i=Find_Set(0); cout<<num[i]<<endl; } return 0; }
相关文章推荐
- linux下Qt程序编译运行
- Java基础--面向对象(继承、抽象类、接口)
- 小学四则运算APP 第三阶段冲刺
- 【Struts2】文件上传
- Android手机加密进度
- jquery获得所有重名的文本框值
- Populating Next Right Pointers in Each Node,Populating Next Right Pointers in Each Node II
- 小学四则运算APP 第三阶段冲刺
- salt-minion dead but pid file exists 正确解决方法
- Atitit.论图片类型 垃圾文件的识别与清理 流程与设计原则 与api概要设计 v2 pbj
- c小基础
- Linux 下shell编程
- IOS9开始如何处理转屏
- Android多屏幕适配资源生成
- Atitit.论图片类型 垃圾文件的识别与清理 流程与设计原则 与api概要设计 v2 pbj
- Atitit.论图片类型 垃圾文件的识别与清理 流程与设计原则 与api概要设计 v2 pbj
- siege压测工具的安装与使用
- Ext.js5的数组表格(3)
- VC++或QT下 高精度 多媒体定时器
- 学习Canvas绘图与动画基础 为多边形着色(三)