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 }

 

你可能感兴趣的:(floyd)