#include<stdio.h>
#include<string.h>
struct time
{
int v,u,w;
}lu[22222];
int dis[22222];
int main()
{
int n,m,i,j;
while(scanf("%d%d",&n,&m),n,m)
{
for(i=1;i<=n;i++)
dis[i]=9999999;
dis[1]=0;
for(i=1;i<=2*m;i=i+2)
{
scanf("%d%d%d",&lu[i].u,&lu[i].v,&lu[i].w);
if(lu[i].u==1)
dis[lu[i].v]=lu[i].w;
else if(lu[i].v==1)
dis[lu[i].u]=lu[i].w;
lu[i+1].u=lu[i].v;
lu[i+1].v=lu[i].u;
lu[i+1].w=lu[i].w;
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=2*m;j++)
{
if(dis[lu[j].v]>dis[lu[j].u]+lu[j].w)
{
dis[lu[j].v]=dis[lu[j].u]+lu[j].w;
}
}
}
printf("%d\n",dis[n]);
}
return 0;
}
最短路径A
最新推荐文章于 2024-07-18 15:56:16 发布