并查集的高效之处在于路径压缩和延迟更新。在本题中需要额外维护子树的规模以及当前子树节点到跟的距离两个数组。由于一个新的数必然是两棵树拼接而成,对于子树规模的更新直接相加即可,对于节点到跟的距离:我们让a树的根指向b树的根,同时更新a树根到(a+b)树根(即b树根)的距离为size_of(Tree(b...
分类:
其他好文 时间:
2015-09-23 21:12:55
阅读次数:
190
hdu 1856 More is better简单的并查集,用到了路径压缩题意:找出节点数最多的连通分支,并输出该节点数。思路:统计每个连通分支的节点数(利用并查集构建图时进行路径压缩,用一个与根节点下标对应的sum数组记录节点数),比较后得出最大值。 1 #include 2 #include 3...
分类:
其他好文 时间:
2015-08-26 21:53:03
阅读次数:
151
【并查集】UVALive3027 Corporative Network并查集——维护到根节点距离的d数组题目大意对n个节点操作,加边 or 询问某节点到根节点的距离
说一下思路之前做过一道求连通分支最大元素个数的题目,维护的是一个cnt[ ]数组(在加边的过程中);比较这道题,可以考虑维护到根节点的距离d[ ]数组。思路:记下每个节点到父亲节点的距离为d[i],然后在路径压缩时维护这个d数组;在...
分类:
Web程序 时间:
2015-08-26 12:18:11
阅读次数:
149
题目大意:有一些立方体,初始时每个立方体都在独立的一个栈中,共n个。支持两个操作,即把包含立方体的栈整体移动到包含立方体的栈顶(两栈合并)和询问立方体下方有多少个立方体。
思路:令栈顶元素为各个集合的代表元素,路径压缩的同时记录各节点至代表元素的距离(dist[ ])以及以各元素为代表元素的元素数目(cnt[ ])。
代码如下:
#include
#include...
分类:
其他好文 时间:
2015-08-19 13:36:08
阅读次数:
112
链接:http://poj.org/problem?id=2236
Wireless Network
Time Limit: 10000MS
Memory Limit: 65536K
Total Submissions: 19684
Accepted: 8252
Description
An earthqua...
分类:
Web程序 时间:
2015-08-19 11:21:09
阅读次数:
609
题目链接:点击打开链接
题目大意:有n个人,各自管理不同的人,问有多少人管理k个人。
思路:先记录每个人的直接上级,然后模拟路径压缩的过程进行计数求和。
#include
#include
int p[105],sum[105];
void init()
{
int i;
for(i=0;i<105;i++)
{
p[i]=i;
sum...
分类:
其他好文 时间:
2015-08-13 20:15:53
阅读次数:
131
每个结点除了维护父亲结点编号以外,多维护一个sum值和r值,表示该子树的总结点数(如果该结点是根则sum值有效)以及它到根的距离(即被运输了几次),然后在路径压缩和集合合并的时候顺便维护这两个值即可。 1 #include 2 #include 3 #include 4 using names...
分类:
其他好文 时间:
2015-08-09 09:32:10
阅读次数:
138
这题不错,用到了三个知识点,我开始没用字典树,超时了。顺便学习了字典树。
看到了一个不错的题解。
可以用图论中欧拉路的知识来解这道题,首先可以把木棒两端看成节点,把木棒看成边,这样相同的颜色就是同一个节点
问题便转化为:
给定一个图,是否存在“一笔画”经过涂中每一点,以及经过每一边一次。
这样就是求图中是否存在欧拉路Euler-Path。...
分类:
其他好文 时间:
2015-08-06 22:25:27
阅读次数:
239
单纯的并查集很简单,带权并查集还能解决更多的问题,才更好玩,来个题热身。对于下面的知识,现在就当你已经熟练掌握了递归和并查集的路径压缩。
POJ1988:题目链接 http://poj.org/problem?id=1988
题目大意:有N(N
? M x y : 表示把方块x所在的堆,拿起来叠放到y所在的堆上。
? C x : 问方块x下面有多少个方块。
操作最多有 P (P
...
分类:
其他好文 时间:
2015-08-04 19:12:34
阅读次数:
117
带权并查集水题,头一次写这东西,纯手写。。因为n很小,所以还不用路径压缩(其实是不会除了记录父亲节点外,还记录下距离父亲节点的距离,每次查找祖先并且求出这段距离和。 1 #include 2 #include 3 #include 4 using namespace std; 5 const ...
分类:
其他好文 时间:
2015-08-01 00:58:24
阅读次数:
101