[强连通分量+Tarjan缩点]

Posted -wind-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[强连通分量+Tarjan缩点]相关的知识,希望对你有一定的参考价值。

强连通分量

定义:有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected components)。

技术图片

 

  1. Tarjan 是 一种基于 dfs 的算法 ,图中每个强连通分量为搜索树的一棵子树
  2. 搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断栈顶到栈中的节点是否为一个强连通分量。
  3. 用 dfn[x] 表示 x 在 dfs 时 的时间戳 (第几个遍历到的),low[x] 表示 x 及其 子树 能 追溯 到的 最早的栈中 节点 的时间戳。
  4. 考虑到 如果 u 是某个 强连通分量的根,那么:
  • u不存在路径可以返回到它的祖先
  • u的子树也不存在路径可以返回到u的祖先

  所以 当 low[x] == dfn[x] 时 x 恰好 是一个 强连通分量的根。

技术图片

模拟:

技术图片

技术图片

技术图片

技术图片

 

以上是关于[强连通分量+Tarjan缩点]的主要内容,如果未能解决你的问题,请参考以下文章

tarjan算法(强连通分量 + 强连通分量缩点 + 桥 + 割点 + LCA)

tarjan强连通分量缩点模板

POJ 1236(强连通分量/Tarjan缩点)

强连通分量tarjan缩点——POJ2186 Popular Cows

tarjan[强连通分量][求割边割点][缩点]

Tarjan算法求有向图强连通分量并缩点