小ワットの好きな絵は、森を見つけることができるである(実際には、驚くべきことを証明することは容易ではない。正当な明らかその後、鳴らない場合はリングリング自体は、違法ではないので、場合)。見つかった消去最小を続行<=> 側面に最大限の選択<=> 最大スパニング森を、クラスカルをクリックし実行します。
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 構造体JI { 4 int型のX、Y、Z。 5 } [ 500001 ]。 6 INTの N、M、F [ 500001 ]。 7つの 長い 長いANS; 8 ブールCMP(JI X、JIのY){ 9 リターン XZ> YZ。 10 } 11 int型の検索(int型K){ 12 であれば(K == F [K])戻りK。 13 リターン F [K] =検索(F [K])。 14 } 15 INT メイン(){ 16 のscanf(" %D%dの"、&N、&M)。 17 のために(int型 I = 1を iが++; I <= M {) 18 (scanf関数" %D%D%D " [I] .X、&[I]・Y、&、&[I] .Z)。 19の ANS + = A [i]の.Z。 20 } 21 ソート(A + 1、+のM + 1 、CMP)。 22 のためには、(int型 i = 1 ; iがn = <; iは++)F [I] = I。 23 用(int型 iは= 1 iが++; I <= M ) 24 場合(見つける([I] .X)=!{([I] .Y)見つける。) 25 [.X [I](見つけるF )] = ([I]・Y)を求めます。 26 ans- = A [i]の.Z。 27 } 28 のprintf(" %のLLD " 、ANS)。 29 }