Floyd-Warshall 算法

    xiaoxiao2021-12-02  66

    //Floyd-Warshall 算法 -> 来自啊哈算法 #include <stdio.h> int main() { int e[10][10],n,m,t1,t2,t3; int inf = 99999999; scanf("%d %d",&n,&m);//定点数和边数 for(int i = 1;i <= n;i++) for(int j = 1; j <= n;j++) if(i == j)e[i][j] = 0; else e[i][j] = inf; //读入边 for(int i = 1;i <= m;i++) { scanf("%d %d %d",&t1,&t2,&t3); e[t1][t2] = t3; } //核心 //从1~k中转,if(i->j的距离 大于 i经过 k 再到 j 的距离)则更新i->j的距离 for(int k = 1;k <= n;k++) for(int i = 1;i <= n;i++) for(int j = 1;j <= n;j++) if(e[i][k] < inf && e[k][j] < inf && e[i][j] > e[i][k] + e[k][j]) e[i][j] = e[i][k] + e[k][j]; //输出 for(int i = 1;i <= n;i++) { for(int j = 1; j <= n;j++) { printf("d",e[i][j]); } printf("\n"); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-679866.html

    最新回复(0)