POJ 2485 Highways(最小生成树)
第一WA,发现读错题了,以为求最大生成树的最小边。。。再次PE,题目中明明说:There is an empty line after each test case.这不是坑人吗?数据中没有换行
还算是比较裸的prim的。。
1 #include <stdio.h> 2 #include <string.h> 3 #define N 100000000 4 int map[501][501],low[501],o[501]; 5 int main() 6 { 7 int i,j,k,n,t,min,max; 8 scanf("%d",&t); 9 while(t--) 10 { 11 memset(map,0,sizeof(map)); 12 memset(o,0,sizeof(o)); 13 scanf("%d",&n); 14 for(i = 1;i <= n;i ++) 15 { 16 for(j = 1;j <= n;j ++) 17 scanf("%d",&map[i][j]); 18 } 19 for(i = 1;i <= n;i ++) 20 { 21 low[i] = map[1][i]; 22 } 23 o[1] = 1; 24 for(;;) 25 { 26 min = N; 27 for(i = 1;i <= n;i ++) 28 { 29 if(!o[i]&&min > low[i]) 30 { 31 min = low[i]; 32 k = i; 33 } 34 } 35 if(min == N)break; 36 o[k] = 1; 37 for(j = 1;j <= n;j ++) 38 { 39 if(!o[j]&&map[k][j] < low[j]) 40 { 41 low[j] = map[k][j]; 42 } 43 } 44 } 45 max = 0; 46 for(i = 1;i <= n;i ++) 47 { 48 if(max < low[i]) 49 max = low[i]; 50 } 51 printf("%d\n",max); 52 } 53 return 0; 54 }