首先先膜杜教orz 这里简单说一下支配树的概念 支配树是对一个有向图来讲的 规定一个起点s,如果s到v的路径上必须经过某些点u,那么离s最近的点u就是v的支配点 在树上的关系就是,v的父亲是u。 一般图的支配树需要使用tarjan算法,但是如果有向图是没有环的,可以采用另一种做法 按照拓扑序建立支配 ...
分类:
其他好文 时间:
2017-02-11 22:45:48
阅读次数:
254
题意: LCA裸题。 思路: 1. 朴素 2. 基于二分 3. 基于RMQ 实现: 1. 2. 3. 总结: 还可以使用tarjan算法。 ...
分类:
其他好文 时间:
2017-02-04 14:53:45
阅读次数:
162
线段树单点修改区间查询 线段树同时维护和、最大值、最小值 线段树区间取模(平方)区间查询 最短路spfa 2-SAT稳定党员 欧几里得与扩展欧几里得 中国剩余定理 字典树 匈牙利算法 LCA Tarjan算法 Tarjan强连通分量 KMP算法 扩展KMP(最长公共前缀) 数位DP 组合数取模luc ...
分类:
其他好文 时间:
2017-02-03 13:36:06
阅读次数:
461
理解要点如下 理解LOW[i]数组的迭代过程。。 low[u]=min(dfn[v],dfn[u],low[v]); 理解这个。。如果有环。。那么后代就可以更新祖先 那么low[v]就有用了。。 那么第二个理解是这个函数是一个递归函数所以有一个栈 而我们这个算法存顶点本身还存了一个栈。。 你要区分这 ...
分类:
编程语言 时间:
2016-12-23 07:44:12
阅读次数:
142
一种由Robert Tarjan提出的求解有向图强连通分量的线性时间的算法。 [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连 ...
分类:
编程语言 时间:
2016-11-13 14:19:29
阅读次数:
146
COT - Count on a tree #tree #tree You are given a tree with N nodes.The tree nodes are numbered from 1 to N.Each node has an integer weight. We will a ...
分类:
其他好文 时间:
2016-11-12 17:03:42
阅读次数:
251
http://poj.org/problem?id=1144 题意:给你一些点,某些点直接有边,并且是无向边,求有多少个点是割点 割点:就是在图中,去掉一个点,无向图会构成多个子图,这就是割点 Tarjan算法求割点的办法 Low[v]>=dnf[u]也就是说明U的子孙点只能通过U点访问U的祖先点 ...
分类:
其他好文 时间:
2016-11-10 18:50:54
阅读次数:
207
SPFA算法 tarjan算法 Tarjan算法是用来求有向图的强连通分量的。 Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树。搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断栈顶到栈中的节点是否为一个强连通分量。 定义DFN(u)为节点u搜索的次序编 ...
分类:
其他好文 时间:
2016-11-02 17:25:33
阅读次数:
385
看了LRJ的训练指南上连通有关的介绍,写得挺好,但是有些位置逻辑跳跃比较大,还有一些留给读者思考的位置,在此做个总结. 1.DFS框架 2.连通分量 3.二分图判定 4.无向图的割顶和桥 5.无向图的双连通分量 6.有向图的强连通分量(Tarjan算法) 1.DFS框架 连通图很多都是跟DFS框架里 ...
分类:
其他好文 时间:
2016-10-28 20:42:39
阅读次数:
386
说到以Tarjan命名的算法,我们经常提到的有3个,其中就包括本文所介绍的求强连通分量的Tarjan算法。而提出此算法的普林斯顿大学的Robert E Tarjan教授也是1986年的图灵奖获得者(具体原因请看本博“历届图灵奖得主”一文)。 首先明确几个概念。 关于Tarjan算法的伪代码和流程演示 ...
分类:
编程语言 时间:
2016-10-17 22:49:46
阅读次数:
220