19/7/2021
all-pair最短路
Floyd-Warshall算法
int d[1000][1000];
0...n-1
动态规划。
把图上的n个点从1到n编号
把计算all-pair最短路,分成若干个阶段。
考虑从s到t的路径,
第k个阶段,考虑从s到t的(中间点是
边界条件
若
若不存在
负环
只考虑图上无负环的情况
Bellman-Ford
- 如果从s到t的最短路存在,那么Bellman-Ford算法结束时一定有
t.d=dis(s,t) 。 - 如果从s到t没有路<-> Bellman-Ford算法结束时有
t.d=\infty 。 - 如果从s到t有路,但是没有最短路,说明存在一条s到t的路径经过负环。
对于Bellman-Ford算出来的v,d如何区分是第一种情况还是第三种情况?
当 算法结束是,若