【问题标题】:Two vertices with shortest path具有最短路径的两个顶点
【发布时间】:2017-12-30 15:57:19
【问题描述】:

我正在尝试解决这个问题,但被卡住了。 需要帮助,谢谢。

给定一个在边缘处具有非负值的无向连通图 G。
设 A 是 V(G) 的子群,其中 V(G) 是 G 中的顶点群。

-找到属于A的一对顶点(a,b),使得它们之间的最短路径在G中的权重最小,在O(V*(E+Vlog(v)) )

我想到在每个节点中使用 Dijkstra 算法,这将给我 O(V*(E+Vlog(v)))。我认为这太过分了,我们可以通过一次使用 Dijkstra 来做到这一点。 所以想以某种方式连接A中的顶点,没有找到任何有用的方法。

【问题讨论】:

标签: algorithm shortest-path dijkstra


【解决方案1】:

让我们通过一个例子来理解上面的场景。

让图 G 包含 - a, b, c, d, e, f

V(G) = {a,b,c,d,e,f}

现在既然说A是V(G)的一个子群,那么我们假设

A = {a,b,c}

现在在该图上运行Floyd–Warshall algorithm,这基本上将为您提供所有顶点对之间的最短路径。

并且该算法的整体时间复杂度为 O(V^3),其中 V 是图中的顶点数。

此算法完成后,您可以轻松检查子组 A 中存在哪两对顶点。

希望这会有所帮助!

【讨论】:

  • 它确实有帮助,谢谢。但有人告诉我它可以在 - O((E+V)log(v))) 中完成
  • @Omarkhateeb 那你为什么不直接问那个告诉你可以在 O((E+V)log(v)) 时间内完成的人......
  • 另外,如果您在那个时候找到了解决方案,请通过更新您的问题告诉我们。另外,如果我的回答有任何帮助,您可以标记它:)
猜你喜欢
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-26
  • 2019-02-14
  • 2021-05-25
  • 1970-01-01
相关资源
最近更新 更多