当 i = 0 时,表示步长为 0,不前进就到达,如果 s=v 那么不存在这种情况,我们令其为 ∞,否则为 0
动态规划解决
我们将
1 2 3 4 5 6 7 8 9
defSSSP(G, s): table := 2D-array index from0 to n-1in both dimensions table(0,0) = 0# base case for s for v = 1 to n-1: table(0, v) = ∞ for i = 1 to n-1: for v = 0 to n-1: table(i, v) = min{table(i-1, u) + w(u, v) for u in neighbors(v)} returnmin{table(n-1, v) for v in0 to n-1}
defASAP(G): table := 3D-array index from0 to n-1inall dimensions for v = 0 to n-1: for u = 0 to n-1: table(0, u, v) = w(u, v) # base case, 不经过中间节点直接到达 for i = 1 to n-1: for u = 0 to n-1: for v = 0 to n-1: table(i, u, v) = min{table(i-1, u, v), table(i-1, u, i) + table(i-1, i, v)} returnmin{table(n-1, u, v) for u in0 to n-1, v in0 to n-1}