有向图判断环

Posted Bestcoderg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有向图判断环相关的知识,希望对你有一定的参考价值。

可以对DFS稍加变化,来解决这个问题。解决的方法如下:

    图中的一个节点,根据其C[N]的值,有三种状态:

    0,此节点没有被访问过

    -1,被访问过至少1次,其后代节点正在被访问中

    1,其后代节点都被访问过。

    按照这样的假设,当按照DFS进行搜索时,碰到一个节点时有三种可能:

    1、如果C[V]=0,这是一个新的节点,不做处理

    2、如果C[V]=-1,说明是在访问该节点的后代的过程中访问到该节点本身,则图中有环。

    3、如果C[V]=1,类似于2的推导,没有环。    在程序中加上一些特殊的处理,即可以找出图中有几个环,并记录每个环的路径

 这里有个例子:Codeforces 937D

以上是关于有向图判断环的主要内容,如果未能解决你的问题,请参考以下文章

有向图判断环

判断有向图中是否存在环

Leetcode 207 课程表 (拓扑排序,判断有向图环)

CF1217D Coloring Edges 判断有无环的有向图

c语言,有向图里如何检测是不是有环?

判断有向图是不是有环