Algorithm 使图有根

Algorithm 使图有根,algorithm,graph-theory,directed-graph,Algorithm,Graph Theory,Directed Graph,问题的定义:对于图中的每个节点u,节点v将被称为根iff,因为从v到u有一条有向路径 给定一个无根的有向图G= 我需要找到一个算法来决定我们是否可以添加一条边,这样在生成的图中就有一个根 有什么想法吗?为您的图计算强连通分量SCC图。如果SCC图正好有两个源A和B,则将A中的任何节点的有向边添加到B中的任何节点将导致A中的每个节点成为最终图中的根节点 源是没有传入边的节点 您可以使用以下方法计算O | V |+| E |时间内的SCC图。因此,总体复杂性为O | V |+| E |。计算图的强连

问题的定义:对于图中的每个节点u,节点v将被称为根iff,因为从v到u有一条有向路径

给定一个无根的有向图G=

我需要找到一个算法来决定我们是否可以添加一条边,这样在生成的图中就有一个根


有什么想法吗?

为您的图计算强连通分量SCC图。如果SCC图正好有两个源A和B,则将A中的任何节点的有向边添加到B中的任何节点将导致A中的每个节点成为最终图中的根节点

源是没有传入边的节点


您可以使用以下方法计算O | V |+| E |时间内的SCC图。因此,总体复杂性为O | V |+| E |。

计算图的强连通分量SCC图。如果SCC图正好有两个源A和B,则将A中的任何节点的有向边添加到B中的任何节点将导致A中的每个节点成为最终图中的根节点

源是没有传入边的节点


您可以使用以下方法计算O | V |+| E |时间内的SCC图。所以总体复杂度是O | V |+| E |。

你能准确地解释一下这个算法是如何解决这个问题的吗?在Gscc中的每个scc中,任何一对节点之间都有一条定向路径。我想我可以找到一个有两个以上scc的图,但如果我们在两个特定节点之间添加一条边,结果图中就会有一个根。@baza如果scc图正好有两个源…-不完全是两个节点。SCC图中的每个节点都是原始图中节点的集合。您能否准确解释此算法如何解决此问题?在Gscc中的每个scc中,任何一对节点之间都有一条定向路径。我想我可以找到一个有两个以上scc的图,但如果我们在两个特定节点之间添加一条边,结果图中就会有一个根。@baza如果scc图正好有两个源…-不完全是两个节点。SCC图中的每个节点都是原始图中节点的集合。