求助
查看原帖
求助
973480
封禁用户楼主2024/8/7 10:54
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,e[1001][1001],k,j,i,t1,t2,t3;
    int inf=99999999;
    cin >> n >> m;
    for(int i=1;i<=n;i++){//初始化二维数组e[10][10]
        for(int j=1;j<=n;j++){
            if(i==j) e[i][j]=0;//对自己的距离为0;
            else e[i][j]=inf;
        }
    }
    //读入边
    for(int i=1;i<=m;i++){
        cin >> t1 >> t2 >> t3;
        e[t1][t2]=t3;
    }
    //Floyd算法
    for(k=1;k<=n;k++){
        for(i=1;i<=n;i++){
            for(j=1;j<=n;j++){
                if(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++) cout << e[i][j] << " ";
        printf("\n");
    }
    return 0;
}
2024/8/7 10:54
加载中...