并查集
穆梓先生
人之为学有难易乎?学之则难者亦易矣,不学则易者亦难矣!
展开
-
1896: 树的判定(并查集)
1896: 树的判定 时间限制: 1 Sec 内存限制: 64 MB 提交: 3 解决: 3 [提交][状态][讨论版][Edit] [TestData] 题目描述 A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or原创 2017-08-09 10:46:10 · 201 阅读 · 0 评论 -
poj 食物链 (种类并查集)
种类并查集的经典题转自 飘过的小牛 : http://blog.csdn.net/niushuai666/article/details/6981689关系域更新:当然,这道题理解到这里思路已经基本明确了,剩下的就是如何实现,在实现过程中,我们发现,更新关系域是一个很头疼的操作,网上各种分析都有,但是都是直接给出个公式,至于怎么推出来的都是一笔带过,让我着实头疼了很久,经过不断的看discus...转载 2018-03-31 10:18:55 · 1135 阅读 · 0 评论 -
hdu 1325 is it a tree
测试数据1: 0 0 空树是一棵树2: 1 1 0 0 不是树 不能自己指向自己3: 1 2 1 2 0 0 不是树....自己开始一直在这么WA 好郁闷 重复都不行呀~~55554: 1 2 2 3 4 5 不是树 森林不算是树(主要是注意自己)5: 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1 注意 一个节点在指向自己的父亲或祖先 都是错误的 即 9-->...原创 2018-04-08 17:27:29 · 100 阅读 · 0 评论 -
hdu 1598 find the most comfortable road
根据贪心的kruskal最小生成树算法思路, 把路径按照从小到大排序, 然后从小到大依次枚举“最小速度”, 再寻找目标起点到目标终点的路径中的“最大速度”,为了使得它们的差更小,就要使得“最大速度”尽量的小。那么为了让Start和End有路径,只需要按照kruskal算法从"最小路径"开始构造生成树,一旦发现Start和End有连接了,那么就表示已经构成满足条件的那个路径。由于路径已经排序好,那么...原创 2018-04-08 17:31:36 · 111 阅读 · 0 评论 -
hdu A Bug's Life(种类并查集)
给你n个虫子,m个虫子相恋的关系,问有没有同性虫子相恋。#include<stdio.h> using namespace std; #define MAXN 2005 int n,m; int pre[MAXN]; int type[MAXN]; void init(){ for(int i=1;i<=n;i++){ pre[i]=i; type[i]=0;//0为同...原创 2018-04-10 09:23:53 · 383 阅读 · 0 评论 -
hdu 2473 Junk-Mail Filter(并查集删点)
题意:一些点M a,b代表将a,b合并为一类邮件 S a 代表从集合中删除a,最后输出有几类邮件思路:并查集,M代表合并,S代表删除,下面讲一下删除操作大家都知道合并操作就是找到找到两个节点的父亲,修改父亲,如果删除就是将该点的父亲重新设置成自己,这样行不行呢?这是不行的,比如1,2,3的父亲都是1,现在删除1,1的父亲还是1,2,3也是1,集合还是1个,正确的应该是2个。那删除节点的父亲不设成...转载 2018-04-10 16:09:43 · 165 阅读 · 0 评论 -
hdu 3172 Virtual Friends(带权并查集)
题意:给你f个关系,每个关系有两个人名,表示互相认识。求每一次的输出,输出有多少个人刚刚成为朋友。(如果没有新的朋友加入,则输出原来的人数)注意:输入格式巨坑,需要这样while(scanf("%d",&case)!=EOF){ while(case--){} }测试数据如下:1 7 a b a a a c c g g h n n h n ans: 2 2 3 4 5 1 6遇到了玄学...原创 2018-04-10 17:37:52 · 120 阅读 · 0 评论 -
hdu 3635 Dragon Balls(带权并查集)
思路来源:飘过的小牛题目大意:初始时,有n个龙珠,编号从1到n,分别对应的放在编号从1到n的城市中。现在又2种操作:T A B,表示把A球所在城市全部的龙珠全部转移到B城市。(第一次时,因为A球所在的城市只有一个球,所以只移动1个,如果有多个,则全部移动)。Q A,表示查询A。要求得到的信息分别是:A现在所在的城市,A所在城市的龙珠数目,A转移到该城市移动的次数(如果没有移动就输出0)1.龙珠i在...转载 2018-04-10 20:34:02 · 105 阅读 · 0 评论