洛谷 2025 攀爬者

2021-07-27 10:46:17 字數 1255 閱讀 6275

題目描述

他在地形圖上標記了n個點,每個點pi都有乙個座標(xi,yi,zi)。所有點對中,高度值z不會相等。hke準備從最低的點爬到最高的點,他的攀爬滿足以下條件:

(1) 經過他標記的每乙個點;

(2) 從第二個點開始,他經過的每乙個點高度z都比上乙個點高;

(3) hke會飛,他從乙個點pi爬到pj的距離為兩個點的歐幾里得距離。即,

現在,hke希望你能求出他攀爬的總距離。

輸入格式:

第一行,乙個整數n表示地圖上的點數。

接下來n行,三個整數xi,yi,zi表示第i個點的座標。

輸出格式:

乙個實數,表示hke需要攀爬的總距離(保留三位小數)

輸入樣例#1:

52 2 2

1 1 1

4 4 4

3 3 3

5 5 5

輸出樣例#1:

6.928

解題思路:

直接把所有點按z排序,再把排序後相鄰兩點的距離加起來即可

**:var

a:array[0..50000,1..3]of extended;

i,j,n:longint;

ans:extended;

procedure qsort(l,r:longint);

vari,j:longint;

t:extended;

begin

i:=l;j:=r;

t:=a[(l+r)div 2,3];

repeat

while (a[i,3]0) do inc(i);

while (a[j,3]>t)and(j<=n) do dec(j);

if i<=j then begin

a[0]:=a[i];

a[i]:=a[j];

a[j]:=a[0];

inc(i);dec(j);

end;

until i>j;

if lif iend;

begin

readln(n);

for i:=1 to n do

readln(a[i,1],a[i,2],a[i,3]);

qsort(1,n);

for i:=2 to n do

ans:=ans+sqrt(sqr(a[i,1]-a[i-1,1])+sqr(a[i,2]-a[i-1,2])+sqr(a[i,3]-a[i-1,3]));

writeln(ans:0:3);

end. 

洛谷 P1071 潛伏者

題目描述 r 國和 s 國正陷入戰火之中,雙方都互派間諜,潛入對方內部,伺機行動。歷盡艱險後,潛伏於 s 國的 r 國間諜小 c 終於摸清了 s 用密碼的編碼規則 1 s 方內部欲傳送的原資訊經過加密後在網路上傳送,原資訊的內容與加密後所得的內容均由大寫字母 a z 構成 無空格等其他字元 2 s ...

《終結者 洛谷》第3章

soha 大家堅持住啊!一定要殺出去!soha身邊只剩下vercont和一扶蘇一2個人了 high score率領這近200個綠名士兵將soha 一次又一次的打敗,也逐漸縮小包圍圈,soha危在旦夕 vercont和 一扶蘇一拿著分塊盾牌拼死抵擋,但馬上要堅持不住了 難道,我們要葬身此地了 忽然,乙...

題解 洛谷P1071 潛伏者

題意概括 給你一段原來截獲的英文密碼和與之對應的明文,如果密碼表非f a法,輸出 failed 否則翻譯現在給你的一句密文並輸出。所有字母均為大寫 有兩種情況視為密碼表非法 1 所有資訊掃瞄完畢,但發現有字母在原資訊中沒有出現 密碼表脫漏 2 掃瞄中發現掌握的資訊裡有明顯的自相矛盾或錯誤 密碼表錯亂...