令 G 为有向图。存在一个特殊的顶点 S,使得从图中的每个其他顶点到该顶点都有一条路径

Let G be a directed graph. There is a special vertex S such that there is a path to this vertex from every other vertex of the graph

要检查一个顶点 v 是否是一个特殊的顶点是否足以表明它在一个汇强连通分量中?难道我们也不必证明底层的无向图是连通的吗?如果是这样,检查顶点是否特殊的最佳方法是什么

即使我们知道图的无向形式是连通的,也不足以证明 v 在汇 SCC 中。这是因为可能有多个接收器 SCC,并且一个接收器无法从另一个到达。

如果您的问题是:"given a vertex v, what is the best way to determine if v is reachable from every other vertex of the graph," 那么您应该从 v 开始并沿着所有边向后移动。如果你可以通过向后跟随边缘到达每个顶点,那么这意味着 v 可以从图中的每个其他顶点到达。

如果您没有特定的顶点但想知道是否有任何顶点可以从所有其他顶点到达,这类似于 this problem. You use Tarjan's algorithm 将您的图变成有向无环SCC 图。如果在这个图中有一个唯一的sink SCC,那么这个sink SCC中的每个顶点都可以从整个图中的每个顶点到达。如果有多个汇点 SCC,则图中不存在可从所有其他顶点到达的顶点。