トピックリンクします。https://codeforces.com/gym/101981/attachments
あなたはあなたが(距離が限り、あなたは、特定の誤差の範囲内でできる限り、一意ではない)他の都市では、この最小 - 最大距離を作るために座標、および距離の出力調整しようというn個の都市の3次元座標を、提供します。そのための都市の数が少ないとの距離を、単に一定の誤差範囲内で値を決定するために、ビンにシミュレーテッドアニーリングの実行を必要とされていません。
書式#include <iostreamの> の#include <アルゴリズム> 書式#include <cmath> 使用して 名前空間はstdを、 constの ダブル EPS = 1E- 8 ; #define INF 0x3f3f3f3f int型のn; 構造体ノード{ ダブルX、Y、Z。 ノード(){}; ノード(ダブル X、ダブル Y、ダブルZ):X(X)、Y(y)を、Z(Z){}。 二重DIS(ノードW) { 戻り SQRT((WX-X)*(X-WX)+(YE-Y)*(O-Y)+(WZ-Z)*(WZのZ))。 } } P [ 105 ]。 int型のmain() { scanf関数(" %のD "、&N) ダブルX、Y、Z。 以下のために(int型 i = 1 ; iが<= N; iは++します) { scanf関数(" %LF%LF%LF "、およびX&Y、およびZ)。 P [I] = ノード(X、Y、Z)。 }=ノード(0、0、0 ); ダブル T = 20000、D = 0.98 。 ダブル ANS = infを、RET; 一方、(T> EPS) { int型 POS = 1 ; 以下のために(int型 i = 1 ; iが<= N; iは++します) { もし(a.dis(P [I])> a.dis(P [POS]))POS = I。 } RET = a.dis(P [POS])。 ANS = 分(ANS、右)。 AX + =(P [POS] .xa.x)/ RET * T。 AY + =(P [POS] .ya.y)/ RET * T。 AZ + =(P [POS] .za.z)/ RET * T。 T * = D。 } printf(" %.15lfする\ n " 、ANS)。 リターン 0 ; }