最短路径
一、Floyd
1.可以算负权边。
2.可以算任意两点间的距离。
3.图和矩阵的看法:
(1)i 到 i 为0,若两个点间无边,则距离为无穷。
(2)矩阵为一个二维数组,a[ i ][ j ]即 i 到 j 。i j(矩阵行列)
4.模板
for(int k=1;k<=n;k++)//连接点
for(int i=1;i<=n;i++)//起点
for(int j=1;j<=n;j++){//终点
a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
}
例题:P2910 [USACO08OPEN]Clear And Present Danger S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)例题注意:(1)中间点 i 到 l ,l 到 j 。
(2)小岛1到N号,a[ 1 ]不一定是1,a[ m ]不一定是N,所以代码末尾有两个if语句。