提交时间:2024-06-19 13:00:21

运行 ID: 151821

#include<bits/stdc++.h> using namespace std; int N,a,b,c; int f[101][101]; int main(){ cin>>N; memset(f,0x3f,sizeof(f));//初始化:大 //memset(f,0xc0,sizeof(f));小 while(cin>>a>>b>>c&&(a!=0&&b!=0&&c!=0)){ f[a][b]=c; f[b][a]=c; } for(int k=1;k<=N;k++){ for(int i=1;i<=N;i++){ for(int j=1;j<=N;j++){ f[i][j]=min(f[i][j],f[i][k]+f[k][j]);//动态转移方程 } } } cout<<f[1][N]<<endl;//1->N距离 return 0; }