求【模板】Floyd代码

学术版

zjw686 @ 2024-11-30 08:44:32

求【模板】Floyd代码(看不懂题解)


by mc_xiexie @ 2024-11-30 08:49:07

#include<bits/stdc++.h>
using namespace std;
int n,m,f[106][106];
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(i!=j){
                f[i][j]=1e9;
                //复制为无限大 
            }
        }
    }
    for(int i=1;i<=m;i++){
        int u,v,cost;
        cin>>u>>v>>cost;
        f[u][v]=min(cost,f[u][v]);
        f[v][u]=f[u][v];
        //取u、v之间的最短边 
    }
    for(int k=1;k<=n;k++){
        //中转点 
        for(int i=1;i<=n;i++){
            //由i 
            for(int j=1;j<=n;j++){
                //到k 
                if(i!=j){
                    f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
                    //取原距离 与 由i到k再到j哪个远 
                }
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<f[i][j]<<" ";
        }cout<<"\n";
    }
    return 0;
}

by Lawrenceling @ 2024-11-30 09:18:07

@zjw686


by zjw686 @ 2024-11-30 10:21:25

@mc_xiexie@mc_xiexie求【模板】Floyd三维数组代码


|