求给定非负权边图两个点之间的最短通路
- 初始化:把起始点标记 P(已经求出最短通路), 是目前从起始点到 点的最短通路长度,初始化 ,把起始点连边加入 d
- 拓展:找到 d 里面最小的结点,置 P,
- 修改:修改刚刚最小结点临近的非 P 点的 d 值,修改成目前的最小值(同时可以记录从那个结点连的来记录最短通路),重复 2 直到目标点标记为 P 为止
- 此时终点的 d 值为最短通路长度(最短通路从后往前找就行了)
转移方程:
2024年5月23日1分钟阅读
求给定非负权边图两个点之间的最短通路
转移方程:
d(vi)={d(vk)+w(vk,vi)d(vi),d(vk)+w(vk,vi)<d(vi),else