HDU 1213 How Many Tables 并查集
2015-04-22 16:35
309 查看
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=66964#problem/C
题意:相互认识的人坐同一张桌子,认识具有传递性,典型的并查集求解。
代码:
题意:相互认识的人坐同一张桌子,认识具有传递性,典型的并查集求解。
代码:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int N,M,vis[1010],pre[1010]; int find(int x){ int t=x; while(t!=pre[t]) t=pre[t]; while(x!=t) pre[x]=t,x=pre[x]; return t; } int main(){ //freopen("D:\\in.txt","r",stdin); int T;cin>>T; while(T--){ cin>>N>>M; int a,b; memset(vis,0,sizeof(vis));//点出现标志 for(int i=0;i<=N;i++) pre[i]=i; for(int i=0;i<M;i++){ scanf("%d %d",&a,&b); if(vis[a]) pre[find(b)]=find(a); else pre[find(a)]=find(b); vis[a]=vis[b]=1; } int cnt=0; for(int i=1;i<=N;i++) if(find(i)==i) cnt++;//别犯老错误 cout<<cnt<<endl; } return 0; }
相关文章推荐
- 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 (并查集)
- 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(并查集)
- 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(简单并查集)