【解题报告】【HDOJ2544】【Floyd最短路】最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544
1 #include<stdio.h> 2 #include<string.h> 3 #define INF 0x3f3f3f3f 4 #define min(a,b) (a>b?b:a) 5 int map[101][101]; 6 int main() 7 { 8 int n,m,i,j,k,a,b,c; 9 //freopen("1.txt","r",stdin); 10 while(scanf("%d%d",&n,&m)!=EOF&&(n!=0||m!=0)) 11 { 12 memset(map,INF,sizeof(map)); 13 for(i=0;i<m;i++) 14 { 15 scanf("%d%d%d",&a,&b,&c); 16 map[a][b]=min(c,map[a][b]); 17 map[b][a]=map[a][b]; 18 } 19 20 21 for(k=1;k<=n;k++) 22 { 23 for(i=1;i<=n;i++) 24 for(j=1;j<=n;j++) 25 if(map[i][j]>map[i][k]+map[k][j]) 26 { 27 map[i][j]=map[i][k]+map[k][j]; 28 map[j][i]=map[i][j]; 29 } 30 } 31 32 if(n==1) printf("0\n"); 33 else printf("%d\n",map[1][n]); 34 } 35 return 0; 36 }