HDU1213并查集基础
来源:互联网 发布:成都妇女儿童医院网络 编辑:程序博客网 时间:2024/06/05 14:19
题意:给出总人数与数对两两间的“朋友”关系 将所有有朋友的人坐在一起 求所需要桌子的数量
题意抽象化:所有有关系的人相连成树 即m个合并操作后 求树的个数(根节点的个数)
#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>using namespace std;int t,n,m,parent[1005],rank1[1005],a[1005],s,k,mark;int find(int x)//找父节点 { if(parent[x]==x) return x; return find(parent[x]);}void Union(int a,int b)//合并a,b两个子树 { a=find(a); b=find(b); if(rank1[a]>rank1[b]) parent[b]=a; else if(rank1[a]<rank1[b]) { parent[a]=b; } else { parent[a]=b; rank1[b]++; }}int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); mark=0; memset(ans,0,sizeof(ans)); for(int i=1;i<=n;i++) { parent[i]=i; rank1[i]=0; } for(int i=0;i<m;i++) { scanf("%d%d",&s,&k); Union(s,k); } for(int i=1;i<=n;i++) { if(parent[i]==i)//mark记录根节点个数(一个根节点代表一棵树) mark++; } printf("%d\n",mark); }}
并查集就和微信 QQ的推荐好友一样 从并查集的视角来看 一般会把和我们是同一个树 但却未建立好友关系的人作为推荐好友推荐给我们
1 0
- HDU1213并查集基础
- HDU1213 基础并查集
- HDU1213基础并查集
- hdu1213(基础并查集)
- HDU1213基础并查集
- hdu1213 并查集
- HDU1213并查集
- HDU1213 并查集
- HDU1213(并查集)
- 并查集-hdu1213
- hdu1213 并查集
- hdu1213并查集模板
- hdu1213(并查集)
- hdu1213(并查集复习)
- hdu1213(并查集模板)
- HDU1213 并查集模板
- hdu1213 - How Many Tables (基础并查集)
- HDU1213 How Many Tables(基础并查集)
- SPOJ Fata7y Ya Warda! 裸单调栈 1月25日
- 【t089】数列2
- 网络爬虫:淘女郎
- Til the Cows Come Home
- easyui tab 加载iframe 高度问题
- HDU1213并查集基础
- UVa401
- 清华大学 质因数的个数
- css IE6和W3C盒子定义区别
- Git可视化工具SourceTree的简单使用
- [DFT]插入Pipeline Register
- python条件循环和其他语句
- 索引
- LeetCode 278. First Bad Version