所以我最近一直在研究dijkstra的算法和有向图。然而,我似乎想不出来,这真的开始困扰我了。
演示如何修改Dijkstra算法以求解单源最短
只有一条负权边而没有负权边的路径问题
重量循环。
到目前为止,我最初的想法是以某种方式拆分图形并分别执行算法,但这就是我所想到的一切。
我真的找到了一个我想要的解释,但我似乎无法理解his explanation
回答得好!我想指出的是,如果负边的数目是有限的,那么基于dijkstra的算法可能会做得更好。例如,如果只有一个负边从U到V,则可以在S和V上运行Dijkstra,然后在d[s]d[s]+w(u, v)+d[v]之间取每个顶点的最小值,这就给Dijkstra提供了两次运行的复杂性。

最佳答案

移除负边缘,运行Dijkstra两次:一次从(u, v)s)开始,一次从D1v)开始
D2s之间的最短路径是:t

07-26 01:45