hdu 2544 最短路

http://acm.hdu.edu.cn/showproblem.php?pid=2544

 1 #include <cstdio>

 2 #include <cstring>

 3 #include <algorithm>

 4 #define maxn 500

 5 using namespace std;

 6 const int inf=1<<28;

 7 

 8 int g[maxn][maxn];

 9 int dis[maxn];

10 int n,m,a,b,c;

11 

12 void inti()

13 {

14     for(int i=1; i<=n; i++)

15     {

16         for(int j=1; j<=n; j++)

17         {

18             if(i==j) g[i][j]=0;

19             else g[i][j]=inf;

20         }

21     }

22 }

23 int main()

24 {

25     while(scanf("%d%d",&n,&m)!=EOF){

26         if(n==0&&m==0) break;

27         inti();

28         for(int i=0; i<m; i++)

29         {

30             scanf("%d%d%d",&a,&b,&c);

31             g[a][b]=g[b][a]=min(g[a][b],c);

32         }

33         for(int k=1; k<=n; k++)

34         {

35             for(int i=1; i<=n; i++)

36             {

37                 if(g[i][k]==inf) continue;

38                 for(int j=1; j<=n; j++)

39                 {

40                     g[i][j]=min(g[i][j],g[i][k]+g[k][j]);

41                 }

42             }

43         }

44         printf("%d\n",g[1][n]);

45     }

46     return 0;

47 }
View Code

 

你可能感兴趣的:(HDU)