POJ 3615 Cow Hurdles(Floyd)

题目链接

听QC说是裸弗洛伊德,我想都没想就打出来了,发现样例过不了,仔细看了看题,有一点变化。。。

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 1000000
 4 int p[301][301];
 5 int main()
 6 {
 7     int sv,ev,w,i,j,k,n,m,t;
 8     scanf("%d%d%d",&n,&m,&t);
 9     for(i = 1;i <= n;i ++)
10     for(j = 1;j <= n;j ++)
11     {
12         if(i != j)
13         p[i][j] = N;
14         else
15         p[i][j] = 0;
16     }
17     for(i = 1;i <= m;i ++)
18     {
19         scanf("%d%d%d",&sv,&ev,&w);
20         if(p[sv][ev] > w)
21         {
22             p[sv][ev] = w;
23         }
24     }
25     for(k = 1;k <= n;k ++)
26     for(i = 1;i <= n;i ++)
27     for(j = 1;j <= n;j ++)
28     {
29         if(p[i][j] > p[i][k]&&p[i][j] > p[k][j])
30         {
31             if(p[i][k] > p[k][j])
32             p[i][j] = p[i][k];
33             else
34             p[i][j] = p[k][j];
35         }
36     }
37     for(i = 1;i <= t;i ++)
38     {
39         scanf("%d%d",&sv,&ev);
40         if(p[sv][ev] != N)
41         printf("%d\n",p[sv][ev]);
42         else
43         printf("-1\n");
44     }
45     return 0;
46 }

 

posted @ 2012-06-20 17:24  Naix_x  阅读(185)  评论(0编辑  收藏  举报