### Tarjan 算法求强连通分量
在 Tarjan 算法中为每个结点 $u$ 维护了以下几个变量:
-1. $DFN[u]$ :深度优先搜索遍历时结点 $u$ 被搜索的次序。
-2. $LOW[u]$ :设以 $u$ 为根的子树为 $Subtree(u)$ 。 $LOW[u]$ 定义为以下结点的 $DFN$ 的最小值: $Subtree(u)$ 中的结点;从 $Subtree(u)$ 通过一条不在搜索树上的边能到达的结点。
+1\. $DFN[u]$ :深度优先搜索遍历时结点 $u$ 被搜索的次序。
+2\. $LOW[u]$ :设以 $u$ 为根的子树为 $Subtree(u)$ 。 $LOW[u]$ 定义为以下结点的 $DFN$ 的最小值: $Subtree(u)$ 中的结点;从 $Subtree(u)$ 通过一条不在搜索树上的边能到达的结点。
一个结点的子树内结点的 DFN 都大于该结点的 DFN。
-从根开始的一条路径上的 DFN 严格递增, LOW 严格非降。
+从根开始的一条路径上的 DFN 严格递增,LOW 严格非降。
按照深度优先搜索算法搜索的次序对图中所有的结点进行搜索。在搜索过程中,对于结点 $u$ 和与其相邻的结点 $v$ (v 不是 u 的父节点)考虑 3 种情况: