Commit 500922cf authored by sshwy's avatar sshwy
Browse files

做一下小修改

parent 390d3269
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@

Robert E. Tarjan (1948~) 美国人。

Tarjan 发明了很多很有用的东西,下到 NOIP 上到 CTSC 难度的都有。光Tarjan算法就有很多,比如求各种联通分量的Tarjan算法,求LCA(Lowest Common Ancestor,最近公共祖先)的Tarjan算法。并查集、Splay也是Tarjan发明的。
Tarjan 发明了很多算法结构。光 Tarjan 算法就有很多,比如求各种联通分量的 Tarjan 算法,求 LCA(Lowest Common Ancestor,最近公共祖先)的 Tarjan 算法。并查集、Splay、Toptree 也是 Tarjan 发明的。

我们这里要介绍的是在有向图中求强连通分量的 Tarjan 算法。

@@ -48,7 +48,7 @@ Tarjan 发明了很多很有用的东西,下到 NOIP 上到 CTSC 难度的都

显然,按照 DFS 搜索树的递归顺序,$low[u]$ 是单调递增的。

按照深度优先搜索算法搜索的次序对图中所有的结点进行搜索。在搜索过程中,对于结点 $u$ 和与其相邻的结点 $v$ 考虑 3 种情况:
按照深度优先搜索算法搜索的次序对图中所有的结点进行搜索。在搜索过程中,对于结点 $u$ 和与其相邻的结点 $v$ (v不是u的父节点)考虑 3 种情况:

1.  $v$ 未被访问:继续对 $v$ 进行深度搜索。在回溯过程中,用 $low[v]$ 更新 $low[u]$。因为存在从 $u$ 到 $v$ 的直接路径,所以 $v$ 能够回溯到的已经在栈中的结点,$u$ 也一定能够回溯到。
2.  $v$ 被访问过,已经在栈中:即已经被访问过,根据 $low$ 值的定义(能够回溯到的最早的已经在栈中的结点),则用 $DFN[v]$ 更新 $low[u]$.