最近公共祖先
luer9
假如我年少有为。
展开
-
hihoCoder 1062 最近公共祖先 一(初识始最近公共祖先)
描述小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在其中,但这是为什么呢?“为什么呢?”小Hi如是问道,在他的观察中小Ho已经沉迷这个网站一周之久了,甚至连他心爱的树玩具都弃置一边。“嘿嘿,小Hi,你快过来看!”小Ho招呼道。“你看,在这个对话框里输入我的名字,在另一个对话框里,输入你的名字,再点这个查询按钮,就可以查出来……什么!我们居然有...原创 2018-09-04 10:58:49 · 139 阅读 · 0 评论 -
最近公共子序列(LCA,DFS序,RMQ-ST)
解题思路1、建树2、用 dfs 将树转换为一维数组3、rmq(st算法) 预处理 查找 第1步 vector建树,这步不难理解,看代码可以看懂。 第2步 dfs转换过程记录规则就是假设在走路,不管走没走过的地方,只要经过就记录。记录下 dfs 的序列,还有 dfs 过程中每一个点的深度(即辈分)。还需要记录一个在 dfs 中每一个节点首次出现的位置。...转载 2018-09-08 09:37:10 · 363 阅读 · 0 评论 -
最近公共祖先(LCA,Tarjan)
一定要耐心慢慢看Tarjan算法的优点在于相对稳定,时间复杂度也比较居中,也很容易理解。 下面详细介绍一下Tarjan算法的基本思路: 1.任选一个点为根节点,从根节点开始。 2.遍历该点u所有子节点v,并标记这些子节点v已被访问过。 3.若是v还有子节点,返回2,否则下一步。 4.合并v到u上。 5.寻找与当前点...转载 2018-09-08 09:44:48 · 4430 阅读 · 13 评论 -
HDU 2586 How far away ?(dfs序,RMQ,LCA,Tarjan)
Problem DescriptionThere are n houses in the village and some bidirectional roads connecting them. Every day peole always like to ask like this "How far is it if I want to go from house A to house B...原创 2018-09-06 16:32:02 · 272 阅读 · 0 评论 -
hihoCoder_#1069 最近公共祖先三 (LCA,RMQ)
描述上上回说到,小Hi和小Ho使用了Tarjan算法来优化了他们的“最近公共祖先”网站,但是很快这样一个离线算法就出现了问题:如果只有一个人提出了询问,那么小Hi和小Ho很难决定到底是针对这个询问就直接进行计算还是等待一定数量的询问一起计算。毕竟无论是一个询问还是很多个询问,使用离线算法都是只需要做一次深度优先搜索就可以了的。那么问题就来了,如果每次计算都只针对一个询问进行的话,那么这样的...原创 2018-09-07 15:01:33 · 111 阅读 · 0 评论 -
POJ 1330 Nearest Common Ancestors (LCA,RMQ,DFS序)
A rooted tree is a well-known data structure in computer science and engineering. An example is shown below: In the figure, each node is labeled with an integer from {1, 2,...,16}. Node 8 is the roo...原创 2018-09-07 18:45:03 · 119 阅读 · 0 评论