タイトル効果: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 ; }