#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n,m,map[124][124];
const int inf=0x7fffffff;
void floyed()
{
     for(int i=1;i<=n;i++)
         for(int j=1;j<=n;j++)
             for(int k=1;k<=n;k++)
                 if(map[i][j]!=inf&&map[i][k]!=inf)
                      if(map[i][j]+map[i][k]<map[j][k])
                          map[j][k]=map[i][j]+map[i][k];
}
int main()
{
    int a,b,v;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        for(int i=1;i<=n;i++)//初始化
        {
            for(int j=1;j<=n;j++)
            {
                 map[i][j]=inf;
            }        
        }
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d%d",&a,&b,&v);
            if(val<map[a][b]&&a!=b)
            {
                   map[a][b]=map[b][a]=v;
            }
        }
        floyed();
        printf("%d\n",map[1][n]);
    }
    system("pause");
    return 0;
}
posted on 2011-05-20 19:36  枫叶飘泪  阅读(225)  评论(0编辑  收藏  举报