题意梗概:据说母牛在产奶的时候,因为奶量太充足,希望有人帮它挤奶,它回家就很快。我们便能喝到鲜美的
牛奶,不过,贫奶季节却大不相同,它会懒洋洋的在大草原上晃来晃去的晒太阳,而不会想到马上回家,这可不
是好兆头,这意味着它没时间睡好觉,随之产奶的质量又会下降。
为了喝到高质量的鲜牛奶,以促进身体发育,长得更高,你希望它能尽快的回家睡觉,所以你要在给定的几条小
路中找到能回家最短的路径组合。
题目分析:还是求最短路径,可以用dijkstra算法解题,这方法我也不是特别懂,照着书上打完,再改了一下,就
过了......

1 #include "cstdio" 2 #define INF 1000100 3 int v[1004]; 4 int d[1004][1004]; 5 int l[1004]; 6 int min(int x,int y) 7 { 8 return x>y?y:x; 9 } 10 void abegin(int n) 11 { 12 for (int i=0;i<n;i++) 13 { 14 v[i] = 0; 15 l[i]= (i == n-1?0:INF); 16 for (int j=0;j<n;j++) 17 d[i][j] =INF; 18 } 19 } 20 int main() 21 { 22 int t,n; 23 int a,b,c,x; 24 while (scanf ("%d%d",&t,&n)!= EOF) 25 { 26 abegin(n); 27 while (t--) 28 { 29 scanf ("%d%d%d",&a,&b,&c); 30 if (c < d[a-1][b-1]) 31 { 32 d[a-1][b-1] = c; 33 d[b-1][a-1] = c; 34 } 35 } 36 for (int k=0;k<n;k++) 37 { 38 c = INF; 39 for (int i=0;i<n;i++) 40 { 41 if (!v[i] && l[i]<=c) 42 c = l[x=i]; 43 } 44 v[x] = 1; 45 for (int i=0;i<n;i++) 46 { 47 l[i] = min (l[i],l[x]+d[i][x]); 48 } 49 } 50 printf ("%d ",l[0]); 51 } 52 53 54 return 0; 55 }