羅区P1396救助

トピックポータル

問題解決のアイデア:

クラスカルを実行し、tと中国聯通、最大出力までよ

ACコード:

1の#include <cstdioを>
 2の#include <iostreamの>
 3の#include <アルゴリズム>
 4  
5  使用 名前空間STD。
6  
7  INTの N、M、S、T、FA [ 10001 ]、ANS。
8  構造体KKK {
 9      INT  から、へ、V。
10 } E [ 20001 ]。
11  
12  ブールCMP(KKK BをKKK){
 13      リターン AV < BV。
14  }
 15  
16  INT find_father(INT X){
 17      もし(FA [X] == x)をリターンX。
18      リターン FA [X] = find_father(FA [X])。
19  }
 20  
21  のint main()の
 22  {
 23      のscanf(" %D%D%D%D "、&​​N、&M、&S&T)。
24      のためにint型 i = 1 ; iが<= N; iが++ 25          のFA [I] = I。
26      のためには、int型 I = 1 ; I <= M iは++ 27          のscanf(" %D%D%D "、&​​E [i]とします。&E [i]の.TO、&E [I] .V)。
28      ソート(E + 1、E + 1、M + 1 、CMP)。
29      のためにint型 I = 1 ; I <= M Iは++ ){
 30          INT X1 = find_father(E [I] から)。
31          INT Y1 = find_father(E [I] .TO)。
32          であれば(X1 =!Y1){
 33              、FA [X1] = Y1。
34の              ANS = MAX(ANS、E [I] .V)。
35          }
 36          であれば(find_father(S)== find_father(T)){
 37             printf(" %dの" 、ANS)。
38              リターン 0 ;
39          }
 40      }
 41      リターン 0 42 }

 

おすすめ

転載: www.cnblogs.com/lipeiyi520/p/11310114.html