POJ 2524 Ubiquitous Religions (并查集)
来源:互联网 发布:曹雪芹原型贾宝玉知乎 编辑:程序博客网 时间:2024/05/16 18:02
输入两个数字的组合表示这两个人同信仰,问最后又多少种信仰
太明显的并查集,没什么好说的了,只是这题压缩路径会效率很差,因为并的操作是大多,不压缩路径对于并操作来说更快
压缩路径后并的操作要遍历数组,效率就低多了
初始时设信仰数为总人数,每一次并的操作信仰数减一,就能得到最后信仰总数。
压缩路径3657MS,不压缩282MS
不压缩路径算法:
#include <stdio.h>int student[50001],n=0;int count;inline int find(int x){while(student[x]!=x){x=student[x];}return x;}void change(int x,int y){int i=0;int px=find(x),py=find(y);if(px!=py){--count;student[px]=py;}return;}int main(void){int k=0,m=0;int i=0,x=0,y=0;while(scanf("%d%d",&n,&m)&&n+m){for(i=1;i<=n;++i){student[i]=i;}count=n;for(i=0;i<m;++i){scanf("%d%d",&x,&y);change(x,y);}printf("Case %d: %d\n",++k,count);}}
压缩路径算法:
#include <stdio.h>int student[50001],n=0;int count;void change(int x,int y){int i=0,temp=0;if(student[x]!=student[y]){--count;temp=student[y];for(i=1;i<=n;++i){if(student[i]==temp){student[i]=student[x];}}}}int main(void){int k=0,m=0;int i=0,x=0,y=0;while(scanf("%d%d",&n,&m)&&n+m){for(i=1;i<=n;++i){student[i]=i;}count=n;for(i=0;i<m;++i){scanf("%d%d",&x,&y);change(x,y);}printf("Case %d: %d\n",++k,count);}}
- POJ 2524 Ubiquitous Religions(并查集)
- POJ 2524-Ubiquitous Religions 并查集
- POJ 2524 Ubiquitous Religions 并查集
- poj 2524 Ubiquitous Religions(并查集)
- poj 2524 Ubiquitous Religions 并查集
- POJ 2524 Ubiquitous Religions (并查集)
- [poj 2524]Ubiquitous Religions[并查集]
- poj 2524 - Ubiquitous Religions(并查集)
- POJ 2524 Ubiquitous Religions (并查集)
- [并查集]POJ 2524 Ubiquitous Religions
- POJ 2524 Ubiquitous Religions 并查集
- poj 2524 Ubiquitous Religions --- 并查集
- POJ 2524 Ubiquitous Religions(并查集)
- POJ-2524 Ubiquitous Religions 并查集
- poj 2524 Ubiquitous Religions(并查集)
- poj 2524 Ubiquitous Religions(并查集)
- POJ 2524 Ubiquitous Religions (并查集)
- POJ 2524 Ubiquitous Religions 并查集
- eclipse+axis2+tomcat 进行web部署
- http://wangquanhpu.iteye.com/blog/1462144
- Myeclipse6.5 在配置struts2 时加入了包commons-fileupload-1.2.2,ognl,struts-core,commons-loggin,xwork之后还报错
- 第10周项目一--利用循环求和for循环
- 小心使用IHttpHandler下的IsReusable属性
- POJ 2524 Ubiquitous Religions (并查集)
- 求三角形面积
- 关于 update ADT plug-in 的错误
- spring JDBC的支持使用实例源码
- fix bug
- MySQL JDBC 5.1.25的一个坑(应该算是BUG)
- 第九周上机实践项目——闰年与否
- 第10周项目一--利用循环求和(while)
- 二叉树的基本操作(创建、递归和非递归遍历、求深度、求叶子数)