2021年hznu寒假集训第九天 最短路入门

2021年hznu寒假集训第九天

最短路相关概念

2021年hznu寒假集训第九天 最短路入门
2021年hznu寒假集训第九天 最短路入门

Floyd

我们定义一个数组 dis[k][x][y] ,表示只允许经过结点 V1 到 Vk ,结点 x 到结点 y 的最短路长度。

很显然, dis[n][x][y] 就是最终结点 x 到结点 y 的最短路长度。

dis[0][x][y] 是 x 与 y 的边权,或者 0 ,或者 inf (当 x 与 y 间有直接相连的边的时候,为它们的边权;当 x = y 的时候为零,因为到本身的距离为零;当 x 与 y 没有直接相连的边的时候,为 inf )

dis[k][x][y] = min(dis[k-1][x][y], dis[k-1][x][k]+dis[k-1][k][y]) ( dis[k-1][x][y] 为不经过 k 点的最短路径,而 dis[k-1][x][k]+dis[k-1][k][y] 为经过了 k 点的最短路)。

上面两行都显然是对的,所以说这个做法空间是 O(

上一篇:2020年HZNU天梯训练赛 Round 3


下一篇:2020年HZNU天梯训练赛 Round 8