一个编程小白的疑惑

P4779 【模板】单源最短路径(标准版)

_Christina @ 2024-08-11 16:13:32

在floyed算法中有三层循环,第一层循环中间点k,不知中间点k为什么放在第一层循环,希望各位大神不吝赐教


by yukimianyan @ 2024-08-11 16:17:40

可参考 https://oi-wiki.org/graph/shortest-path/#floyd-%E7%AE%97%E6%B3%95


by dyyzy @ 2024-08-11 16:18:56

@_Christina 因为 floyed 本质是一个 DP, f_k_i_j 表示i到j号点经过k次转移的最短路,但是我们把k这一维压掉了,所以你写出来的f数组是两维的


by _Christina @ 2024-08-11 17:13:59

@yukimianyan Thank you!


by _Christina @ 2024-08-11 17:14:28

@dyyzy Thank you!


by 48WangYanJi @ 2024-10-12 22:33:22

@_Christina 你可以设想一条 1-3-5-4-2 的路径,只有 k 放在第一个才能更新出来


|