- 4900 Atcoderエンジン

タイトル効果:n点、原点からの最大距離のいくつかの点のいずれかの結果として得られる組み合わせ。

ソリューション:極角並べ替え:https://blog.csdn.net/qq_39942341/article/details/79840394

極角を使用してソート、相分離、中線定理との間のより小さい角度差、2つのベクトルの原点としてこれらのベクターは、長いベクトルの長さは、複合それらを得ました。

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
CONST  INT N = 1E5 + 7 構造体STU {
     ダブルA、B。
    ブールフレンド演算子 <(CONST STU&X、CONST STU&Y){
         戻り ATAN2(XB、XA)< ATAN2(YB、YA)。
    } 
} [N] ARR。
INTのNXT [N]。
int型のmain(){
     int型、nは 
    cinを >> N;
    以下のためにINT iが= 1 ; I <= N; I ++)CIN >> ARR [I] .A >>ARR [I] .B;    
     のためのINT I = 1 ; I <= N; I ++)NXT [I] = I + 1。; 
    NXT [N-] = 1 ; 
    並べ替え(ARR + 1、ARR + 1 + N-)、
     ダブル ANS = 0 ;
     のためのINT I = 1 ; I <= N; I ++){ // 点の各開始点として、記録のサイズながら、出発点に円背を横切る
        ダブル DX = ARR [I] II.A。
         ダブルのDy = ARR [I] .B; 
        ANS = MAX(ANS、ARR [I] * II.A ARR [I] + II.A ARR [I] .B * [I] .B ARR); 
        
        のためint型J = NXT [I];!J = J = NXT [J]){ 
            DX + = ARR [J] .A。
            DY + = ARR [J] .B。
            ANS = MAX(ANS、DX * DX + DY * DY)。
        } 
    } 
    のprintf(" %.15lf \ n " 、SQRT(ANS))。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/Accepting/p/11900458.html