[模板] tarjan/联通分量/dfs树

Posted ubospica

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[模板] tarjan/联通分量/dfs树相关的知识,希望对你有一定的参考价值。

边的分类

有向图边分为四类: 树边, 前向边, 返祖边(后向边), 横叉边.

上图:

技术图片

判定

有向图

对图进行dfs, 不考虑已经遍历过的点, 得到dfs序 (dfn_i).

在dfs过程中, 记录当前dfs栈. 对于边((u,v)),

  • 树边: (vis_v==0);
  • 前向边: (vis_v==1)(dfn_v > dfn_u);
  • 返祖边: (vis_v==1)(dfn_v < dfn_u), 且 (v) 在当前栈内;
  • 横叉边: (vis_v==1)(dfn_v < dfn_u), 且 (v) 不在当前栈内.

无向图

边仅分为树边和返祖边, 通过 (vis) 判断即可.

以上是关于[模板] tarjan/联通分量/dfs树的主要内容,如果未能解决你的问题,请参考以下文章

机器学习实战应用案例100篇(二十五)-强联通分量算法应用案例

tarjan算法求强联通分量

tarjan与有向图联通性__强连通分量,追溯值

Tarjan强联通分量模板

hihoCoder#1185 : 连通性·三 tarjan求强联通分量 缩点 dfs/拓扑排序求路径和最大值

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