bellman-ford求最短路
一、bellman-ford求最短路
1、题目
有向图G有n个点、m条边,图中可以有重边、负权重边、自环,可能有负权回路,计算1号点到n号点的最短距离。
2、思路
外层:for循环n次
内层:for循环m次,循环所有边a—w--->b
每次:dis[b]=min(dis[b],dis[a]+w)
(松弛操作)
(外层循环k次表示的含义:从1号点,经过不超过k条边的最短路的距离;第n次循环有更新:图中一定有负环)
循环完的结果:
所有边满足dis[b]<=dis[a]+w (三角不等式
原创
2020-12-17 11:24:17 ·
155 阅读 ·
0 评论