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三维数组代码