【问题标题】:Least points that can traverse all points in the directed graph可以遍历有向图中所有点的最小点
【发布时间】:2017-11-05 04:04:16
【问题描述】:

给定有向图,找出可以遍历图中所有顶点的最小顶点集。

E.g: 
    5 -> 4  
    4 -> 6
    6 -> 7
    5 -> 8

在上面的例子中,最小的顶点集是“5”,因为您可以从顶点 5 访问所有其他顶点。

使用 BFS 或 DFS 是否可行?我认为 Kosaraju 的算法可能有效,但请检查是否有简单的方法可以做到这一点。

【问题讨论】:

  • 如果使用 DFS 或 BFS 可行,请提供任何算法或伪代码的参考。

标签: algorithm graph


【解决方案1】:
  1. 查找图表的 SCC(强连通分量)。
  2. 将 SCC 的每个组件视为一个 SccNode,即一组节点。
  3. 对于每个 SccNode,随机选择其中一个节点。这将创建一个结果集 S 的节点。
  4. 深度优先搜索S,剔除S中其他节点可以到达的节点。剩下的节点就是你想要的。

参考:

  1. 查找 SCC:我建议使用Kosaraju-Sharir
  2. 问题在线判断(问题描述为中文):Summer Holiday

【讨论】:

    【解决方案2】:

    您可以使用一种简单的方法来查找最小顶点集,即枚举图的所有可能遍历并返回最小解。

    【讨论】:

      猜你喜欢
      • 2012-06-20
      • 1970-01-01
      • 2020-09-01
      • 2022-12-06
      • 2019-07-03
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多