一、梳理概念 定义:对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。 通俗地讲,最近公共祖先节点,就是两个节点在这棵树上深度最大的公共的祖先节点,即两个点在这棵树上距离最近的公共祖先节点。 提示:父亲节点也是祖先节点,节点本身也是 ...
分类:
编程语言 时间:
2017-07-26 01:38:27
阅读次数:
490
【在线】 1.倍增法 现将深度较大的跳至与深度较小的统一深度。预处理$fa[u][i]$表示$u$往上跳$2^i$个单位后的祖先,则就可以像快速幂一样,将移动的步数化为二进制,如果第$i$位为$1$,那么向上跳$2^i$次方,即$if(1 << i \& d) u = fa[u][i]$。跳至统一深 ...
分类:
其他好文 时间:
2017-07-26 00:02:53
阅读次数:
221
题目链接: http://poj.org/problem?id=3728 题意: 给出一棵带点权值的树, 对于 q 组形如 x, y 的询问, 一个人要从 x 到 y(单向), 他可以在路上任意一点以此点的的权值买一件物品, 并在接下来的路程中任意一点将其以该点的权值卖出, 输出其最大收益, 若不能 ...
分类:
其他好文 时间:
2017-07-22 19:35:47
阅读次数:
194
原题入口 PS:这个题数据是由Hany01大大出出来的 %%% 这个题显然是一道强联通+DAGdp的题 (题目背景有= =) 缩点的原因就是:不缩会一直在一个地方绕圈圈 而且不能进行后面的DAPdp 而且给你的所有点权全是正的 我在这用的是Tarjan(因为他发明算法太多了233) 这个dp方程比较 ...
分类:
其他好文 时间:
2017-07-22 14:41:03
阅读次数:
166
题目链接 题意:一个有向图,每对一个结点操作。就能够触发连锁反应,使得该结点及它直接或间接指向的点均获得标记,问至少须要操作多少个结点使得全部结点获得标记 思路:有向图的强连通分量。用Tarjan缩点之后找出入度为0的点的个数,即为答案。跟UVA11504一样的题目。 UVA11504 代码: #i ...
分类:
其他好文 时间:
2017-07-22 11:02:51
阅读次数:
161
在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。 Tarjan算法是基于对图深 ...
分类:
编程语言 时间:
2017-07-21 20:48:01
阅读次数:
283
【原创】tarjan算法初步(强连通子图缩点) tarjan算法的思路不是一般的绕!!(不过既然是求强连通子图这样的回路也就可以稍微原谅了。。) 但是研究tarjan之前总得知道强连通分量是什么吧。。 上百度查查: 有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到 ...
分类:
编程语言 时间:
2017-07-21 20:43:24
阅读次数:
177
转自http://www.cnblogs.com/uncle-lu/p/5876729.html 【转载】全网最!详!细!tarjan算法讲解。 全网最详细tarjan算法讲解,我不敢说别的。反正其他tarjan算法讲解,我看了半天才看懂。我写的这个,读完一遍,发现原来tarjan这么简单! tar ...
分类:
编程语言 时间:
2017-07-21 18:59:10
阅读次数:
199
<!--done--> 最近公共祖先LCA(Tarjan算法)的思考和算法实现 LCA 最近公共祖先 Tarjan(离线)算法的基本思路及其算法实现 小广告:METO CODE 安溪一中信息学在线评测系统(OJ) //由于这是第一篇博客..有点瑕疵...比如我把false写成了flase...看的时 ...
分类:
编程语言 时间:
2017-07-21 17:10:53
阅读次数:
194
<!--done--> 全网最!详!细!tarjan算法讲解。 全网最详细tarjan算法讲解,我不敢说别的。反正其他tarjan算法讲解,我看了半天才看懂。我写的这个,读完一遍,发现原来tarjan这么简单! tarjan算法,一个关于 图的联通性的神奇算法。基于DFS(迪法师)算法,深度优先搜索 ...
分类:
编程语言 时间:
2017-07-21 15:45:54
阅读次数:
185