pku 2421 Constructing Roads

pku 2421 Constructing Roads
008-08-29 17:37 http://acm.pku.edu.cn/JudgeOnline/problem?id=2421


这个题没有做出来,完全归咎于自己没有对最小生成树理解透彻。

题目 : 最小生成树,然后下面有个数,代表已经修完的边了。。。。。已经修完了,不就是免费了么。。。。我疯了。。。。(不是自己想到的)   而且还看错题了。。。明明让求和。。。我求得是最小的。。。。。


希望下次有点记性。。。。没少干过这事

 1  #include  < stdio.h >
 2  #include  < string .h >
 3  #include  < algorithm >
 4  #define  max 101
 5  using   namespace  std;
 6  int  m, n, p[max], dc;
 7  struct  E{
 8       int  u, v, w;
 9  }e[ 100000 ];
10  struct  D{
11       int  u, v;
12  }d[ 100000 ];
13  int  find( int  x){
14       if (x  !=  p[x])    
15           return  p[x]  =  find(p[x]);
16       return  p[x];
17  }
18  int  cmp(E a, E b){
19       return  a.w  >  b.w;
20  }
21  int  main(){
22       int  i, j, u, v, w, sum, t, c, tc, min;
23       while (scanf( " %d " & m)  !=   - 1 ){
24          n  =  dc  =  c  =  sum  =   0 ;
25           for (i  =   0 ; i  <  max; i ++ )
26              p[i]  =  i;
27           for (i  =   1 ; i  <=  m; i ++ )
28               for (j  =   1 ; j  <=  m; j ++ ){
29                  scanf( " %d " & t);
30                   if (j  >  i  &&  t){
31                      e[c].u  =  i;
32                      e[c].v  =  j;
33                      e[c ++ ].w  =  t;
34                  }
35              }
36          scanf( " %d " & dc);
37           for (i  =   0 ; i  <  dc; i ++ ){
38              scanf( " %d%d " & u,  & v);
39               for (j  =   0 ; j  <  c; j ++ )
40                   if (u  ==  e[j].u  &&  v  ==  e[j].v  ||  v  ==  e[j].u  &&  u  ==  e[j].v)
41                      e[j].w  =   0 ;
42          }
43          tc  =  c;
44          make_heap(e, e  +  c, cmp);
45           for (n  =   1 ; n  <  m; tc -- ){
46               if ((u  =  find(e[ 0 ].u))  !=  (v  =  find(e[ 0 ].v))){
47                  n ++ ;
48                  p[u]  =  v;
49                  sum  +=  e[ 0 ].w;
50              }
51              pop_heap(e, e  +  tc, cmp);
52          }
53          printf( " %d\n " , sum);
54      }
55       return   0 ;
56  }

你可能感兴趣的:(pku 2421 Constructing Roads)