有向图的强联通分量总结

1. 对于一个有向图来说,连通分量的定义:对于分量中的任意两点u,v,必然可以从u走到v,而且可以从v走到u,强连通分量:也称为极大连通分量(连通分量加上任意一些点之后它都不是一个连通分量了),强连通分量的主要作用:将任意一个有向图转化为一个有向无环图(DAG),有向无环图其实是一个拓扑图,当一个有向图变成有向无环图之后那么很多问题都变得比较简单了(这一点是强连通分量的核心),如下图所示,缩点其实是将所有的强连通分量缩成一个点:

 有向无环图有什么好处呢?我们可以在图中求解最短/长路的时候可以直接递推,时间复杂度为O(n + m),应用:先求解图中所有的强连通分量,把所有强连通分量缩成一个点,缩完点之后按照拓扑序来处理这个问题,这样问题会比较好处理,如何求解强连通分量呢:求解强连通分量基于深度优先遍历(dfs),在深度优先遍历的过程中将边分为四大类:

① 树枝边 (x,y):x是y的父节点,② 前向边(x,y):x是y的祖先节点,③ 后向边(x,y):与前向边是对称的,④ 横叉边(x,y):往之前搜过的分支搜索;对于节点x如何判断是否在某一个强连通分量中,情况1:存在后向边指向祖先节点;情况2:先走到横叉边,然后由横叉边走到祖先节点,前向边是不需要管的,因为此时是不存在环的,x如果在某个强连通分量中那么它一定要走到某个祖先。并且在使用tarjan算法求解所有强连通分量的时候那么最终每一个强连通分量编号都是按照逆序的顺序排列的,所以满足拓扑序的要求:

2. 下图为强联通分量的例子:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值