家族
来源:互联网 发布:java常用算法手册下载 编辑:程序博客网 时间:2024/06/08 15:43
http://codevs.cn/problem/1073/
简单的并查集昨天做的那个题有点难度,有点难理解,今天在做简单的果然好理解很多。
find函数有两种
int find(int weizhi)
{
if(relation[weizhi]==weizhi)
return weizhi;
return relation[weizhi]=find(relation[weizhi]);
}
int find(int weizhi)
{
if(relation[weizhi]==weizhi)
return weizhi;
return find(relation[weizhi]);
}
第一种运用了递归的特性将所以有关系的亲戚赋予最后的那个亲戚的属性值,在一定程度上相当于压缩路径。
#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<algorithm>using namespace std;int relation[5005];int find(int weizhi){ if(relation[weizhi]==weizhi) return weizhi; return relation[weizhi]=find(relation[weizhi]);}int main(){ int n,m,p; cin>>n>>m>>p; for(int i=1;i<=n;i++) { relation[i]=i; } int x,y; for(int i=0;i<m;i++) { cin>>x>>y; relation[find(x)]=find(y); } for(int i=0;i<p;i++) { cin>>x>>y; if(find(x)==find(y)) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0;}
0 0
- 家族
- 家族
- 家族
- 家族
- 家族
- 家族
- 家族
- VA家族
- SQL家族
- Watir 家族
- UNIX家族
- Watir 家族
- 施耐德家族
- 802.11 家族
- scanf 家族
- printf 家族
- WebSphere家族
- grep 家族
- Python正则表达式指南
- Algorithms—128.Longest Consecutive Sequence
- Android系统中的.apk文件和.dex文件
- Android Fragment使用注意事项
- Handler详解(二)---关联到非UI线程
- 家族
- java 中的 wait()方法和 sleep()方法的区别是什么?
- 在RHEL 6.5上使用yum更新/安装软件
- SignalR进行实时通信_3_通过CORS解决跨域
- [Win32] SCManager 服务控制管理器API(1)
- 选择排序
- 浅谈ANR及log分析ANR
- NGUI sprite 裁剪到其他图片sprite
- 网络编程中的函数汇总篇