P4047 [JSOI2010]部族は互いに素なセットに分割しました

アイデア:互いに素セット+スパニングツリー

提出:2(サンプルもののしかし、気持ちは$ QwQ $(裁判官側が失われた)右だったことはありません)

ソリューション:

重量を記録も最初$ N-K + 1つの$側(ケースに対応するが、$ K $最短側通信部を破断する)までの小から大プラス側へ、次に$ $ソート再び接続されたエッジとの間のすべてのポイント、、、、値が答えです。

#include <cstdioを> 
する#include <iostreamの> 
する#include <CStringの> 
する#include <アルゴリズム> 
の#include <cmath>
 の#define ULL符号なし長い長
 の#defineが長い長いちゃう
 の#define RレジスタINT
 使用して 名前空間STD。
#define(; iは= 10000000000を<++ I)(R I = 1の場合)一時停止
 の#define freopenはIN( "NOIPAK ++である。"、 "R"、STDIN)
 の#defineアウトfreopenは( "out.out"、」 W」、STDOUT)
 名前空間FREAD {
 静的 チャー B [ 1 << 15 ]、* S = B * D = B。
GETCHAR()(S == D &&(D =(S = B)+関数fread(B、1,1 << 15、STDIN)、S == D)EOF:* S ++)
 #endifの
インラインINT G(){ 
    R RET = 0、=解決1登録のchar chのを。しばらく(!isdigit(CH = getchar関数()))修正= CH == ' - ' - ?1 :修正します。
    もし(CH == EOF)の戻り EOF; DO RET = RET * 10 +(CH ^ 48)。一方、(isdigit(CH = GETCHAR()))。リターンのRET *の修正。
}インラインブールのisEmpty(CONST  チャー&CH){リターン(CH <= 36 || CH> = 127 );} 
インラインボイド GS(チャー *のS){ 
    登録チャー CHと、一方(のisEmpty(CH = GETCHAR()))。
    やる * S ++ = CHを; しばらく(!のisEmpty(CH = getchar関数())); 
} 
} 使用 FREAD :: Gと、使用FREAD :: GSを。

名前空間Luitaryi {
 CONSTの 整数 N = 1010、M = N * N。
INTのN、K、CNT、TOT、FA [N]。
ダブルANS;
構造体ノード{ INTX、Y;} P [N]。
#define X(I)P [i]は.X
 の#define Y(I)P [i]は.Yの
 構造体の縁{ int型 Uを、V。ダブルワット; エッジ(){} 
    エッジ(INT UU、INT VV、ダブル WW){U = UU、V = VV、W = WW;} 
    インラインブール 演算子 <(constのエッジ&こと){ リターン <W that.w;} 
}電子[M]。
インラインINT GETF(INT X){ 戻り X == FA [x]はx:FA [X] = GETF(FA [X]);} 
インラインボイドメイン(){ 
    N = G()、K =G()。
    ための(R i = 1 ; iが= N <; ++ I)X(I)= G()、Y(I)= G();
    以下のための(R i = 1 ; iが<= N; I ++)のための(R jを= I + 1 ; J <= N ++ j)は
        E [ ++ CNT =エッジ(I、J、SQRT((X (I)-X(J))*(X(I)-X(J))+(Y(I)-y(J))*(Y(I) - Y(J))))。
    ソート(E + 1、E + CNT + 1)。以下のための(R iは= 1 FA [I] =; iが<= N ++ I)I。
    以下のための(R i = 1 ; iは= CNTを<; ++ I){R U = E [I] .U、V = E [I] .V。登録二重 W = Eを[I] .W。
        R UF = GETF(u)は、VF = GETF(V)。
        もし(UF == VF)続けます{ 
            ANS = W。++ TOT; 
            FA [UF] = VFを、
            もし(TOT N-K + == 1ブレーク
        } 
    }のprintf(" %の.2lf " 、ANS)。
} 
} 
(){主署名さ
    Luitaryi ::メイン()。
}

2019年7月22日

おすすめ

転載: www.cnblogs.com/Jackpei/p/11223871.html