algorithm – 查找不超过指定成本的最快路径

我找到了一个不超过指定成本的最快路径的问题.

假设我已经指定了最高成本和4条记录.

// specified cost
    10 
// end point
    5
//(start point) (finish point) (time) (cost)
    2 5 50 5
    3 5 20 9
    1 2 30 5
    1 3 30 7

我必须决定,是否有可能从第(1)点到第(5)点(当没有路径成本< =比我们得到的或当1-5之间没有连接时)它是不可能的,如果是这样的话,什么是最快的进入那里. 这些数据的输出将是:

80 // fastest time
3 1 // number of points that (1 -> 2)  -> (2 -> 5)

请记住,如果有记录说你可以移动1-> 2

1 2 30 5

它不允许你移动2 <-1.

最佳答案 使用动态编程,如下所示:

Route(node, length, target, accumulated)

if length <= 0 return -1
if node == target return accumulated

For each adjacent node:
  current length = accumulated + Route(adjacent node, length - connecting edge weight, target, accumulated + connecting edge weight)
  min length = min(current length, min length)

return min length
点赞