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 }