熬夜的懲罰

2021-10-05 17:45:12 字數 1551 閱讀 2382

玩著玩著,就到了凌晨5點,這下完蛋了,早上8點還有課呢!!! 於是趕緊倒下去睡覺了(玩了這麼久遊戲哪可能說睡著就睡著啊),果然,第二天早上上網課卡迪亞睡著了,更巧的是,還被他媽媽逮了個正著,媽媽斥責道:還睡覺?你是啥都會了嗎?來,給你寫一道題。

題目說:乙個平面中有n個點,保證點不重合,任意三點不共線,並且這n個點構成的一定是凸邊形,這些點按順時針順序從1到n編號。現在告訴你1到n每個點的座標(xi) (yi)。如果有兩個點p1,p2,其中p1=(x1,y1),p2=(x2,y2) ,定義這兩點的特殊距離d(p1,p2)=|x1−x2|+|y1−y2|,現在再告訴你需要在這n個點中任意選擇k(k≥3)個點,請你找出k個點構成的凸邊形在特殊距離公式下的最大周長,其中周長c=d(p1,p2)+d(p2,p3)+…+d(pk,p1)。

為了懲罰你,媽媽讓你把所有可能的k的結果都求出來,即求出所有k在[3~n]取值時的答案c。

注意:k個點構成的一定要是凸邊形,且邊不能夠相交,邊也必須是直線。下圖中左邊的圖是正確的圖,中間的圖邊相交了,右邊的圖邊不是直線

以下這樣的圖形就是凸邊形

以下這樣的圖形就不是凸邊形

第一行乙個整數表示點的數量n (3≤n≤3⋅1e5)

之後n行,每行兩個整數,分別表示第i個點的座標xi,yi (−1e8≤xi,yi≤1e8)

ps:點集是凸的,所有點都是不同的,點是按順時針順序排列的,不會有三個共線點。

output

共一行,分別輸出k的取值從3到n時的的每乙個結果,每個數之間有乙個空格,最後乙個數後沒有空格。

sample input

42 4

4 33 0

1 3sample output

12 14

hint

k=3時最大的周長是選2 3 4點。c=4+5+3=12

k=4時最大的周長是選1 2 3 4點 c=3+4+5+2=14

#include

using

namespace std;

int x[

300005];

int y[

300005];

intmain()

int c=0;

for(

int i=

1;i<=n;i++

) cout <<

2*c ;

c=2*

(max_x-min_x)+2

*(max_y-min_y)

;for

(int i=

4;i<=n;i++

) cout << endl ;

return0;

}

獎勵的懲罰

這個標題看似矛盾 獎勵會帶來什麼懲罰。這就是 獎勵的懲罰 這本書 的,獎勵和懲罰只是乙個硬幣的兩個不同面 而且這個硬幣還不值很麼錢 這個硬幣就是外部刺激。當教育小孩子的時候,當領導下屬的時候,外部刺激是經常使用而且感覺 有效 的方法。這本書幫助認清了我們對於平靜現實下的隱隱不 安的 彼得.斯科爾特斯...

2512 小明的懲罰

time limit 1 sec memory limit 128 mb submit 1047 solved 789 submit status web board 小明和小慧吵架了,小明想見小慧並請求得到原諒。小慧給了小明兩個數m和n 1 輸入m和n 相鄰兩個素數差的最大值 10 306 10和...

沒經驗的懲罰

無論什麼樣的會議,作為專案經理我都應該參加的,雖然我沒有發言權,但是我應該了解整個的專案程序。不能讓別人的意志和決定來影響自己,這是最起碼的。本來我也是想參加的,奈何我們專案組的主力,最具有發言權的他都說不想參加 搞的我也不知道應該參加不參加。說實話,第一次當專案經理,感覺真的好苦逼,尤其是這種大專...