[图论]求割边的时候应该用点做线索还是用边做线索?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[图论]求割边的时候应该用点做线索还是用边做线索?相关的知识,希望对你有一定的参考价值。

在找割边的时候,假如用点做线索,比如a到b有两条无向边。

现在是有重边的情况,假如现在从a点到b点,根据线索,我们认为a是b的父亲了,那我们从b点再回去的边就一定是走不了了。这样的情况下,假如low(b)> dfn(a),那我们的算法会认为a和b之间存在一条割边。这显然是不正确的,我们应当有一个合理的方法来解决这个问题。

我们改用边来做线索,还是刚才的假设。从a到b,我们记下这条无向边,那么b就无法再从这条无向边回到a点了。但是b仍然可以从另外一条(也就是重边)回到a点,其实是把a这个“父亲”的特别属性给去掉,无论如何只要b有一条边能向后走,都认为是返祖边。b回到a的时候必然会更新当前的low(b),所以最终low(b)=dfn(a),也就可以判断出ab之间的边并不是割边了。

其实对比这两个算法的实现,我们可以知道:通过割边可以得到割点,但是通过割点未必知道割边。

以上是关于[图论]求割边的时候应该用点做线索还是用边做线索?的主要内容,如果未能解决你的问题,请参考以下文章

tarjan求割点割边的思考

Light OJ 1026 - Critical Links (图论-求割边, 桥)

UVA 796 Critical Links —— (求割边(桥))

ZOJ Problem - 2588 Burning Bridges tarjan算法求割边

ZOJ 2588 Burning Bridges(无向连通图求割边)

[学习笔记]tarjan求割边