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 }
posted @ 2012-07-14 11:16  Naix_x  阅读(111)  评论(0编辑  收藏  举报