#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,z,i,j,t,b[2010],dis[2010],a[2010][2010];
int main(){
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
a[x][y]=z;
a[y][x]=z;
}
memset(dis,0x3f,sizeof(dis));
dis[1]=0;
for(i=1;i<n;i++){
t=0;
for(j=1;j<=n;j++)
if(b[j]==0&&dis[j]<dis[t])
t=j;
b[t]=1;
for(j=1;j<=n;j++)
if(b[j]==0&&a[t][j])
dis[j]=min(dis[j],dis[t]+a[t][j]);
}
printf("%d",dis[n]);
return 0;
}
一本通训练指导教程P404 城市路
最新推荐文章于 2022-03-07 00:07:24 发布