【发布时间】:2014-02-04 15:49:10
【问题描述】:
我得到一个有向图,其中每条边都有一个成本。利用图中最多有两个负边这一事实,我的目标是找到从给定节点 s 到所有节点的最短路径距离在V中。算法的时间复杂度应该是O(|E| + |V|*log|V|),所以我觉得需要应用Dijkstra的算法。
我猜我需要以某种方式将给定图转换为具有非负权重的新图,该图中从 s 到 v 的最短路径将等效于给定图中所需的最短路径.. 或也许我需要修改 Dijkstra 的算法?
我现在很挣扎。任何帮助将不胜感激!
【问题讨论】:
-
假设 U 和 V 为负边,解决 4 种状态的问题:1- 路径不包含 U 和 V。2- 路径包含 U 且不包含 V。3- 路径包含 V 且不包含 U。4- 路径包含 U 和 v。
标签: algorithm graph dijkstra shortest-path