Floyd

节点 i 到节点 j 的最短路径有2 种可能:从 i 到 j 或从 i 经过若干个节点 k 到 j

循环三层 k , i , j

for(int k=1;k<=n;k++)
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
原文地址:https://www.cnblogs.com/QAQq/p/10306439.html