【演算法模板】Floyd求最短路
阿新 • • 發佈:2018-12-13
#include<iostream> using namespace std; const int MAXN=100+10; const int INF=99999999; int n,m,s,t,g[MAXN][MAXN]; int main() { cin>>n>>m>>s>>t; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) g[i][j]=INF; for(int i=1;i<=m;i++) { int u,v,w; cin>>u>>v>>w; g[u][v]=w; g[v][u]=w; } for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(g[i][k]+g[k][j]<g[i][j]&&i!=k&&j!=k&&i!=j) g[i][j]=g[j][i]=g[i][k]+g[k][j]; cout<<g[s][t]; return 0; }