并查集
softrice
这个作者很懒,什么都没留下…
展开
-
HDU 1272——小希的迷宫
并查集。该题只要成立2个条件,则输出Yes(输出请注意大小写)。第一个条件是该图中没有环。第二个条件是并查集只有一个集合。构成环的条件是2个点已经是在相同的集合里,但是让他们再并成一个集合,这样就构成了环。小心测试数据 0 0 Yes 1 1 0 0 Yes#include#includeusing namespace std;#define maxn 1原创 2013-04-27 21:57:42 · 788 阅读 · 0 评论 -
HDU1598 ——find the most comfortable road(并查集)
将边按速度进行从小达到的排序,设i是最大速度的边,通过枚举比i小的边 for(j=i;j>=0;j--) 如果找到起点和终点在同一个集合里,更新min。测试数据较小,枚举不会超时。#include#include#includeusing namespace std;#define maxn 400#define INF 100000001int father[maxn],r原创 2013-04-27 19:04:52 · 825 阅读 · 0 评论 -
hdu 1232——畅通工程 (无优化)
并查集这道题优化效果不明显 #include#include#includeusing namespace std;int father[1005];int getfather(int i){ while(father[i]!=-1) { i=father[i]; } return i;}void Union(int x,int y){ i原创 2013-07-08 15:47:43 · 840 阅读 · 0 评论 -
HDU 1198——Farm Irrigation
并查集#include#include#includeusing namespace std;int a[11][4]={ 1,0,0,1, 1,1,0,0, 0,0,1,1, 0,1,1,0, 1,0,1,0, 0,1,0,1, 1,1,0,1, 1,0,1,1, 0,1,1,1, 1,1,1,0,原创 2013-07-09 23:20:31 · 748 阅读 · 0 评论 -
并查集模版——实现了路径压
今天花了时间在网上学了并查集。先上例题,解析在注释里。题目: 亲戚(Relations)或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥的表姐的孙子。如果能得到完整的家谱,判断两个人是否亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及.在这种情况下,最好的帮手就是计算机。为了将问题简化原创 2013-04-25 16:09:26 · 1045 阅读 · 0 评论 -
4619——Warm up 2
#include#include#includeusing namespace std;int map[110][110];int father[2100];int vis[2100];int getfather(int x){ while(father[x]!=-1) { x=father[x]; } return x;}void Union(int x,int原创 2013-07-25 20:53:38 · 730 阅读 · 0 评论