【发布时间】:2014-01-11 08:11:57
【问题描述】:
我怎样才能找到有向图中的所有顶点,以便每个其他顶点都可以从这个顶点到达?现在我只能“发明” O(|V|^3) 算法——每个顶点的 DFS/BFS,但我敢肯定,存在一种更快的方法来解决这个问题。
谢谢!
【问题讨论】:
我怎样才能找到有向图中的所有顶点,以便每个其他顶点都可以从这个顶点到达?现在我只能“发明” O(|V|^3) 算法——每个顶点的 DFS/BFS,但我敢肯定,存在一种更快的方法来解决这个问题。
谢谢!
【问题讨论】:
运行strongly connected components algorithm 将图形折叠成其强连通分量的directed acyclic graph。必须至少有一个没有传入边的强连接分量。如果恰好有一个,则该组件中的节点就是您要查找的节点。如果有多个没有传入边的强连接组件,则没有一个节点可以到达所有其他节点。
【讨论】:
编辑:见下面的 cmets!
有时这完全是关于术语的。这里的神奇词是可达性(参见Wikipedia)。不幸的是,我认为你不会喜欢结果。
所以这可能不是你想听到的。
【讨论】: