我有一个有向的正加权图。每个边缘都有使用成本。 我只有A钱,我想用dijkstra算法计算最短路径,但路线边缘成本之和必须小于或等于A.
我想用最小的Dijstra修改(如果我可以通过Dijkstra的小修改来做到这一点)。如果可以,我必须在O(n*log(n))
中这样做,但我想我可以。
任何人都可以帮我这个吗?
答案 0 :(得分:6)
答案 1 :(得分:1)
你真的不需要修改Dijkstra算法来做到这一点,因为答案相当于找到最短路径然后接受它,如果它小于或等于A.
当然,如果您访问成本超过A的路径,您总是可以使内循环短路。
编辑:在澄清您想要最小化成本和距离的情况下,如果不澄清您想要的解决方案,则无法做到这一点。你想要最便宜的路吗?你想要最短路径吗?你想要一些成本和距离的功能吗?所有这些都决定了你应该为特定边缘使用什么加权函数。