具有边缘成本的Dijkstra最短路径算法

时间:2010-04-26 00:23:55

标签: algorithm shortest-path dijkstra

我有一个有向的正加权图。每个边缘都有使用成本。 我只有A钱,我想用dijkstra算法计算最短路径,但路线边缘成本之和必须小于或等于A.

我想用最小的Dijstra修改(如果我可以通过Dijkstra的小修改来做到这一点)。如果可以,我必须在O(n*log(n))中这样做,但我想我可以。

任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:6)

https://www.spoj.pl/problems/ROADS/

问题发生在CEOI '98,其官方解决方案可以找到here

答案 1 :(得分:1)

你真的不需要修改Dijkstra算法来做到这一点,因为答案相当于找到最短路径然后接受它,如果它小于或等于A.

当然,如果您访问成本超过A的路径,您总是可以使内循环短路。

编辑:在澄清您想要最小化成本和距离的情况下,如果不澄清您想要的解决方案,则无法做到这一点。你想要最便宜的路吗?你想要最短路径吗?你想要一些成本和距离的功能吗?所有这些都决定了你应该为特定边缘使用什么加权函数。