题目大意给出一棵树,起点,和要经过的点的序列,已经经过的点就不用去了,剩下的点按照顺序依次去,问要经过多少条边。思路链剖大概应该是可以,不过没试,用了听大爷说的一种神奇的方法。
因为树上经过的点肯定是一段一段的,就想到用并查集将一段合成一个点,每个点最多只能被合一次,这样的话就能保证时间复杂度。查询的时候像链剖一样一段一段往上跳就行了,还要顺便把路径上的所有点缩起来。CODE#define _CR...
分类:
其他好文 时间:
2015-03-28 10:08:16
阅读次数:
152
How far away ?Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6727Accepted Submission(s): 2497Prob...
分类:
其他好文 时间:
2015-03-27 23:34:31
阅读次数:
138
题目地址:HDU 2586
LCA第一发。
纯模板题。
偷懒用的vector,结果一直爆栈。把G++改成C++就过了。。
代码如下:#include
#include
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-03-27 22:16:23
阅读次数:
176
转载请注明出处:http://www.cnblogs.com/fraud/ ——by fraudCheckersTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 125536/65536 K (Java/Others)Total Submissi...
分类:
其他好文 时间:
2015-03-19 23:30:32
阅读次数:
483
引用题解:http://blog.csdn.net/popoqqq/article/details/38823457题目大意:给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有...
分类:
其他好文 时间:
2015-03-18 07:46:44
阅读次数:
149
可持久化线段树 maya……树么……转化成序列……所以就写了个树链剖分……然后每个点保存的是从它到根的可持久化线段树。 然后就像序列一样查询……注意是多个左端点和多个右端点,处理方法类似BZOJ 1901 然后rausen(Orz!!!)粗来跟我说:你直接减去lca和fa[lca]不就好啦~搞...
分类:
其他好文 时间:
2015-03-16 12:45:35
阅读次数:
167
Nearest Common Ancestors
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 20073
Accepted: 10631
Description
A rooted tree is a well-known data structure i...
分类:
其他好文 时间:
2015-03-14 21:49:34
阅读次数:
99
http://acm.hdu.edu.cn/showproblem.php?pid=2586给定一棵带权有根树,对于m个查询(u,v),求得u到v之间的最短距离那么只要求得LCA(u,v),dis(u,v)=dis[u]+dis[v]-2*dis[LCA(u,v)],其中dis[i]表示节点i到根节点root的距离31MS 4104K 2186 B#include
#i...
分类:
其他好文 时间:
2015-03-14 13:56:04
阅读次数:
136
Given the root and two nodes in a Binary Tree. Find the lowest common ancestor(LCA) of the two nodes.The lowest common ancestor is the node with large...
分类:
其他好文 时间:
2015-03-12 06:25:09
阅读次数:
117
考虑树状数组区间修改(只对其子树的答案有影响)点查询,每个点记录的是它到根路径上的权值异或和。答案时query(L)^query(R)^a[lca]。这种方法在支持区间加法、减法的树上询问的时候可以避免树链剖分。可能爆栈,考虑手动开栈。(诶诶Tarjan预处理lca的时候怎么没手动开栈?不要在意^_...
分类:
编程语言 时间:
2015-03-09 22:26:08
阅读次数:
216