hdu 2544(最短路径)

复制代码
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #define INF 9999999//将其设定为一个大数
 6 #define RANGE 101
 7 using namespace std;
 8 int d[RANGE][RANGE];
 9 int n,m;
10 void warshall_floyd()
11 {
12     int i,j,k;
13     for(k=1;k<=n;k++)
14         for(i=1;i<=n;i++)
15             for(j=1;j<=n;j++)
16             d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
17 }
18 int main()
19 {
20     int a,b,c,i,j;
21     while(scanf("%d%d",&n,&m))
22     {
23         if(n==0&&m==0)
24         break;
25         for(i=1;i<=n;i++)
26             for(j=1;j<=i;j++)
27             {
28                if(i==j)
29                 d[i][j]=0;
30                 else
31                 d[i][j]=d[j][i]=INF;
32             }
33 
34         for(i=0;i<m;i++)
35         {
36             scanf("%d%d%d",&a,&b,&c);
37             d[a][b]=d[b][a]=c;
38         }
39        warshall_floyd();
40         printf("%d\n",d[1][n]);
41     }
42     return 0;
43 }
复制代码

 

posted @   Emilylice  阅读(97)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示