并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。
使用并查集时,首先会存在一组不相交的动态集合 $S = \left\{ {{S_1},{S_2}, \cdots ,{S_k}} \rig...
分类:
其他好文 时间:
2015-08-31 23:53:36
阅读次数:
353
题目链接:点击打开链接
题意描述:给定一棵树,找出树中任意两点之间的距离?
解题思路:
1、dfs预处理达到欧拉序列
2、使用RMQ找出最近公共祖先
3、找出根到任意一点的距离,答案为dis[f]+dis[t]-2*dis[rt]
代码:
#include
#include
#include
#include
#define MAXN 40010
using ...
分类:
其他好文 时间:
2015-08-25 23:56:36
阅读次数:
194
首先推荐两个博客网址:http://dongxicheng.org/structure/lca-rmq/http://scturtle.is-programmer.com/posts/30055.html[转]tarjan算法的步骤是(当dfs到节点u时): 1 在并查集中建立仅有u的集合,设置该集...
分类:
其他好文 时间:
2015-08-14 21:03:48
阅读次数:
171
题目地址:节点编号为:1-->n代码:#include #include #include #include #include #include #include #include #include #include #define N 10000+10using namespace std;vec...
分类:
编程语言 时间:
2015-08-11 22:55:35
阅读次数:
131
题目大意:给定所有点的权值都为0,给定一棵树以后,每次询问都要求给定两点 x , y 和一个权值w,要求x,y路径上所有点权值加上w,最后求出每一个节点的值这里因为查询和点都特别多,所以希望能最后一次性更新节点的值我们可以这么考虑,每次询问中找到x,y的最近公共祖先,那么我们将val[x] +=w ...
分类:
编程语言 时间:
2015-08-09 12:18:00
阅读次数:
151
题目大意:多点形成一棵树,树上边有权值,给出一堆询问,求出每个询问中两个点的距离这里求两个点的距离可以直接理解为求出两个点到根节点的权值之和,再减去2倍的最近公共祖先到根节点的距离这是自己第一道lca题目学习了两种方法第一种在ST算法,利用RMQ思想预处理 1 /*在线ST算法*/ 2 #pragm...
分类:
其他好文 时间:
2015-08-08 12:00:54
阅读次数:
184
#1069 : 最近公共祖先·三
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
上上回说到,小Hi和小Ho使用了Tarjan算法来优化了他们的“最近公共祖先”网站,但是很快这样一个离线算法就出现了问题:如果只有一个人提出了询问,那么小Hi和小Ho很难决定到底是针对这个询问就直接进行计算还是等待一定数量的询问一起计算。毕竟无论是一...
分类:
其他好文 时间:
2015-08-07 19:59:59
阅读次数:
342
#1067 : 最近公共祖先·二
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
上上回说到,小Hi和小Ho用非常拙劣——或者说粗糙的手段山寨出了一个神奇的网站,这个网站可以计算出某两个人的所有共同祖先中辈分最低的一个是谁。远在美国的他们利用了一些奇妙的技术获得了国内许多人的相关信息,并且搭建了一个小小的网站来应付来自四面八方的请求。
...
分类:
其他好文 时间:
2015-08-01 22:01:52
阅读次数:
127
#1062 : 最近公共祖先·一
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在其中,但这是为什么呢?
“为什么呢?”小Hi如是问道,在他的观察中小Ho已经沉迷这个网站一周之久了,甚至连他心爱的树玩具都弃置一边。
“嘿嘿,小Hi,你快过来...
分类:
其他好文 时间:
2015-08-01 17:19:32
阅读次数:
124
/*
Author: 2486
Memory: 0 KB Time: 2222 MS
Language: C++11 4.8.2 Result: Accepted
VJ RunId: 4236841 Real RunId: 15859210
*/
#include
#include
#include
#include
#include
#include
using namespa...
分类:
其他好文 时间:
2015-08-01 15:45:45
阅读次数:
116