2014.06.18 14:16简介: “并查集”,英文名为“union-find set”,从名字就能看出来它支持合并与查找功能。另外还有一个名字叫“disjoint set”,中文名叫不相交集合。可能我们倾向于用最短的名字,所以就出现了“并查集”翻译为“disjoint set”的情况。并查集....
分类:
编程语言 时间:
2014-06-28 19:55:37
阅读次数:
331
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1050题意:给出一个带权图。求一条s到t的路径使得这条路径上最大最小边的比值最小?思路:将边排序。枚举最小边,然后将边一个一个插到并查集里,s和t联通时计算更新答案。struct node{...
分类:
其他好文 时间:
2014-06-23 06:13:19
阅读次数:
221
题目大意:一共有两个类,两种操作D X Y表示X Y在不同的类里面,A X Y 询问X Y之间的关系(未知,相同,不同)分析:简单带权并查集,D[i]表示与i对立的类,维护好这个变量就可以了。 1 #include 2 #include 3 #include 4 #include 5 #in...
分类:
其他好文 时间:
2014-06-21 00:58:46
阅读次数:
210
无限膜拜CLJ大牛……不会动态树的弱弱在CLJ的帮助下AC了此题我想到了并查集(人人都会想到的吧……囧),但不知道应该如何处理destroy操作……其实 make操作的实质就是:把x节点到其所在集合代表元的路上所有有向边都反过来,然后就可以处理本体所需的所有操作了(自己想想为何)。代码: 1 var...
分类:
其他好文 时间:
2014-06-20 18:15:36
阅读次数:
175
这题说的是给了一个 平面 然后又很多的长方体柱子 问这个 容器的 容积是什么,排序后 然后 进行 并查集 判断是否 可以有比他小的高度依靠他算体积,通过并查集去判断他的子集的个数。#include #include #include #include using namespace std;cons...
分类:
其他好文 时间:
2014-06-18 23:35:37
阅读次数:
217
同学们一定用过Windows中的画图吧。那么画图中的油漆桶功能是如何实现的呢?
这个问题可以通过DFS深度优先搜索解决。
目标
我们要实现的目标是在常数的时间内判断某两个节点是否连接。
前面章节中介绍了并查集算法,并查集确实可以解决这个问题。我们今天来介绍另外一种办法,那就是DFS深搜。
...
分类:
其他好文 时间:
2014-06-18 06:09:48
阅读次数:
267
题目链接:Codeforces 437D The Child and Zoo
题目大意:小孩子去参观动物园,动物园分很多个区,每个区有若干种动物,拥有的动物种数作为该区的权值。然后有m条路,每条路的权值为该条路连接的两个区中权值较小的一个。如果两个区没有直接连接,那么f值即为从一个区走到另一个区中所经过的路中权值最小的值做为权值。问,平均两个区之间移动的权值为多少。
解题思路:并查集+...
分类:
其他好文 时间:
2014-06-15 15:12:33
阅读次数:
157
Source CodeProblem:3415User:wangyuchengMemory:16492KTime:704MSLanguage:C++Result:AcceptedSource Code#include#include#include#includeusing namespace st...
分类:
其他好文 时间:
2014-06-14 21:41:07
阅读次数:
215
点击打开链接
注意到20w条边,但是询问只有1w,所以有很多边是从头到尾不变的。
首先离线处理,将从未删除的边缩点,缩点后的图的点数不会超过2w,对于每一次add或者delete,直接dfs看是否能从a走到b,然后维护一个ans。
数据不强,不然这种复杂度起码要跑10s。。
#include
#include
#include
#include
using namespace std;
#...
分类:
其他好文 时间:
2014-06-14 12:08:22
阅读次数:
224