用于求取最短路径的长度

基本思想:
遍历任意的两点之间,如果经由一个第三点转达的总路径比直达的路径更短,则用这个转达路径的长度取代原有的直达路径长度。
每次枚举以一个固定的中转点进行。

核心代码:

for(int k=1; i<=n; i++)
    for(int j=1; j<=n; j++)
        for(int k=1; k<=n; k++)
                if(distance[i][j]>distance[i][k]+distance[k][j])
                      distance[i][j]=distance[i][k]+distance[k][j];

例题 洛谷P6175:无向图的最小环问题