ACM_HDU 1213 How Many Tables(基础并查集)
2017-03-26 21:30
393 查看
#include<iostream> #define NN 1000 int ranka[NN]; using namespace std; struct node { int pre; }p[NN]; void Init(int n) { for(int i=1;i<=n;i++) { p[i].pre=i; ranka[i]=1; } } int find(int x) { return x == p[x].pre ? x : find(p[x].pre); } void join(int x,int y) { x=find(x); y=find(y); if(x==y)return; if(ranka[x]>=ranka[y]) { p[y].pre=x; ranka[x]=ranka[x]+ranka[y]; }else { p[x].pre=y; ranka[y]=ranka[y]+ranka[x]; } } int main(void) { int t,M,N,num,a,b,number; cin>>num; for(int i = 0;i < num;i++) { cin>>N>>M; Init(N); for(int j = 0;j < M;j++) { cin>>a>>b; join(a,b); } number = 0; for(int m = 1;m <= N;m++) { if(p[m].pre==m) //数根节点的个数的办法。 number++; } cout<<number<<endl; } return 0; }rank仿佛是标准库的一个自留词,不能用这个名字。
相关文章推荐
- [ACM] hdu 1213 How Many Tables(并查集)
- [ACM] hdu 1213 How Many Tables(并查集)
- HDU 1213 How Many Tables (基础并查集)
- HDU 1213 How Many Tables 基础并查集★
- [ACM] hdu 1213 How Many Tables(并查集)
- HDU1213 How Many Tables(基础并查集)
- HDU-畅通工程-1232(并查集)How Many Tables(1213)
- HDU 1213 How Many Tables 并查集 水~
- hdu 1213 How Many Tables(并查集练习)
- HDU 1213 How Many Tables,并查集
- HDU 1213 How Many Tables 并查集入门
- 杭电hdu 1213 How Many Tables并查集
- HDU 1213 How Many Tables 并查集
- hdu 1213 How Many Tables(并查集练习)
- Hdu1213 - How Many Tables - 并查集
- hdu 1213 How Many Tables(并查集学习)
- HDU 1213 How Many Tables(并查集)
- HDU 1213 How Many Tables(并查集)
- 杭电 hdu 1213 How Many Tables (并查集,简单题)