廣東外語外貿大學第16屆程式設計競賽C題

2021-10-10 07:52:37 字數 1374 閱讀 8763

奇奇哥最近在玩一款叫《碼魂3》的遊戲,遊戲中有乙個著名的場景叫環印城箭陣。當你接近這個場景的時候,會忽然從地面下冒出很多幽靈弓箭手向你射出大量弓箭,奇奇哥第一次跑過去的時候被射成了刺蝟。

奇奇哥試了很多次,都沒有通過箭陣,他非常傷心,彷彿失去了靈魂。正在他要放棄的時候,忽然產生了乙個奇妙的想法,如果他引導這些幽靈弓箭手互相攻擊,不就可以通過這個場景了嗎!

奇奇哥嘗試了一下,發現只要前進路線正確(奇奇哥沿直線前進),而且他跑的也足夠快,從左邊冒出來的弓箭手會射到右邊冒出來的弓箭手,右邊冒出來的弓箭手會射到從左邊冒出來的弓箭手,奇奇哥成功找到了攻略箭陣的方法!

但是這樣一條前進路線非常難找,因為必須保證所有弓箭手都被其他弓箭手射死,否則這些弓箭手就會向奇奇哥發起攻擊,所以路線左右兩邊的弓箭手數目必須一致。奇奇哥非常苦惱,面對遊戲中數百個弓箭手,想找到這樣一條路線是非常難的。

請你幫幫奇奇哥,找出一條正確的前進路線,使得路線兩邊的弓箭手數目是一樣的。

第一行是乙個正整數t,表示資料組數( t <= 200000 )

隨後對於每一組資料,第一行是乙個正整數n,表示弓箭手的數量( n是偶數 且 2 <= n <= 200000 )

隨後n行,每行兩個整數x, y,表示第i個弓箭手的位置 (-1000000 <= x, y <= 1000000)

保證任意兩個弓箭手不在同乙個位置,且所有樣例的弓箭手數量之和<=1000000

因為兩點確定一條直線,所以輸出奇奇哥前進路線上任意兩個不同的點(精確到小數點後6位)

146

88410488

7.000000

8.000000

9.000000

4.000000

找一條直線把給出的偶數個座標點平分

先將所有點進行排序,找到最中間兩點,兩點的連線偏移一點點即可滿足題意。

給出的座標點都是整數,偏移量為小數時不會穿過任意一點。

粉色線就是樣例中間兩點連線,黑色是輸出樣例。按著粉色線稍微偏移一點點就是答案。

#include

using

namespace std;

const

int maxn=

1000000007

;typedef

long

long ll;

struct node

w[200005];

bool

cmp(node a,node b)

intmain()

return0;

}

廣東外語外貿大學第16屆程式設計競賽 B 蔥蔥樹

b 蔥蔥樹 1000ms256mb description 這是乙個在工作中的乙個真實樣例!聰哥十分慶幸他加入了acm協會,並成功解決了這個需求,你能解決這個需求嗎?輸入一棵大小為n有根樹,節點編號為1到n且以編號為1的節點為根。這棵樹的結點有0 9的權值。接下來給出q個查詢 每個查詢輸入乙個結點的...

西安電子科技大學第16屆程式設計競賽網路同步賽

牛客網貌似直接複製會變亂碼,真的毒瘤。a 水題直接寫 includeusing namespace std int main cin n int res 0 while n else if flag cout c 直接暴力求出所有值存到陣列裡,排序後輸出第k大的。includeusing names...

西安電子科技大學第16屆程式設計競賽 E題

眾所周知,xieldy最常用的口令是 為了改變這一現狀,他random了乙個01串,並從中擷取了一段作為自己的口令。他選擇的口令滿足以下條件 1.口令串表示的二進位制數在十進位制下可以被表示為3k k 0 2.口令串可以有前導零。現已經random出了01串,他想知道有多少種口令方案可以選擇 不同的...