HDU-#1213 How Many Tables (并查集)
2014-07-11 18:36
357 查看
题目大意:Ignatius' birthday.要安排朋友就坐,但不想陌生人坐在同一个桌子上,现在给你朋友间的关系,问最少需要多少张桌子。
解题思路:该题与hdoj1272类似,都可以用并查集来做,简单推一下关系就出来了。上一篇已经分析了,这里就不赘述了,直接上代码。
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1213
code:
解题思路:该题与hdoj1272类似,都可以用并查集来做,简单推一下关系就出来了。上一篇已经分析了,这里就不赘述了,直接上代码。
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1213
code:
#include <iostream> #include <cstdio> using namespace std; const int MAXN =1000+10; int pa[MAXN],vis[MAXN]; int findset(int x){ return pa[x] != x ? pa[x] = findset(pa[x]) : x; } int main() { int T,n,m,t,x,y,count,sum; scanf("%d",&T); while(T--){ sum=0;t=0;count=0; scanf("%d%d",&n,&m); for(int i=0;i<MAXN;i++){ vis[i]=0; pa[i] = i; } while(m--){ scanf("%d%d",&x,&y); if(!vis[x]){ t++;count++; vis[x]=1; } if(!vis[y]){ t++;count++; vis[y]=1; } x=findset(x);y=findset(y); if(x==y) continue; else{ t--; pa[x]=y; } } sum=n-count+t; printf("%d\n",sum); } 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 (并查集模板题)
- HDU1213 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(并查集)