宗教信仰(并查集)
来源:互联网 发布:淘宝锐力运动户外 编辑:程序博客网 时间:2024/05/08 12:10
[http://acm.hnust.cn/JudgeOnline/problem.php?cid=1310&pid=0]
分析:若简单的用数组,难免会消耗很大的内存空间,而且通过排序,可能会TLE,而并查集的时间复杂度接近O(1),因此用并查集。两个学生信仰同一个宗教就合并(即把他们的父节点置为同一个)
#include<cstdio>#include<algorithm>using namespace std;const int N=50005;int par[N];int Find(int x)///找根结点{ int r=x; while(par[r]!=r) r=par[r]; int t=x; while(t!=r) { int m=par[t]; par[t]=r; t=m; } return r;}/*int Find(int x){ return par[x]==x?x:Find(par[x]);}*/void unite(int x,int y)//合并{ x=Find(x); y=Find(y); if(x!=y) par[x]=y;}int main(){ int n,k=0,m; while(~scanf("%d%d",&n,&m)) { if(!m&&!n) break; int p,q,num=0; for(int i=1;i<=n;i++) par[i]=i; for(int i=1;i<=m;i++) { scanf("%d%d",&p,&q); unite(p,q); } for(int i=1;i<=n;i++) if(par[i]==i) num++; printf("Case %d: %d\n",++k,num); } return 0;}
阅读全文
0 0
- 宗教信仰(并查集)
- 宗教信仰(并查集)
- 宗教信仰 (并查集模板 )
- hnustoj 并查集——宗教信仰
- 湖南科技大学 并查集_宗教信仰 小水题
- poj 2524宗教信仰 并查集水题
- 并查集训练题 宗教信仰
- 并查集(集并查)
- 宗教信仰
- 宗教信仰
- 宗教信仰
- 宗教信仰
- 宗教信仰
- 宗教信仰
- 并查集(含关系并查集)
- 【并查集】食物链(关系并查集)
- 【并查集】并查集详解(转)
- 分组并查集(种类并查集)
- Centos下查看cpu、磁盘、内存使用情况以及如何清理内存
- WPS尾部空格没有下划线
- Linux实际内存占用率算法,以及使用Python实现内存监控
- 学习HTML时喜爱的一段文字
- Java密码学
- 宗教信仰(并查集)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- css_day02_各种选择器基本使用(相邻兄弟选择器+,兄弟选择器~)
- java安装后path参数设置错误的解决
- 代码学习(地铁售票系统)
- linux知识总结4
- guava之ImmutableMap使用实例及好处
- Windows安装MySQL5.7.17
- guava 学习笔记 使用瓜娃(guava)的选择和预判断使代码变得简洁