2015百度之星資格賽1004

2021-07-02 20:19:55 字數 1375 閱讀 2393

題目名稱:放盤子

problem description

小度熊喜歡惡作劇。今天他向來訪者們提出乙個惡俗的遊戲。他和來訪者們輪流往乙個正多邊形內放盤子。最後放盤子的是獲勝者,會贏得失敗者的乙個吻。玩了兩次以後,小度熊發現來訪者們都知道遊戲的必勝策略。現在小度熊永遠是先手,他想知道他是否能獲勝。

注意盤子不能相交也不能和多邊形相交也不能放在多邊形外。就是說,盤子內的點不能在多邊形外或者別的盤子內。

input

第一行乙個整數

t ,表示

t 組資料。每組資料報含

3 個數n,

a,r(

4≤n≤

100,

0<

a<

1000,0

<

r<

1000

)

n 是偶數,代表多邊形的邊數,

a 代表正多邊形的邊長,

r 代表盤子的半徑。

output

對於每組資料,先輸出一行

case #i:

然後輸出結果.如果小度熊獲勝,輸出」give me a kiss!」 否則輸出」i want to kiss you!」

sample input

2

4 50 2.5

4 5.5 3

sample output

case #1:

give me a kiss!

case #2:

i want to kiss you!

hint

在第一組樣例中,小度熊先在多邊形中間放乙個盤子,接下來無論來訪者怎麼放,小度熊都根據多邊形中心與來訪者的盤子對稱著放就能獲勝。

hint中已經告訴我們贏的策略了,那麼只要先手能放下乙個盤子,那麼就贏了。

那麼,怎麼確定能不能放下乙個盤子呢?so easy!只要判斷邊心距是否大於等於盤子半徑就行了。

那麼問題來了,正多邊形的邊心距怎麼求呢?

(然而我覺得這個百科寫得並不好)

公式:邊心距=邊長的一半除以tan(pi/邊數),也就是下面的b = a/2/tan(pi/n)。(pi是圓周率)

**如下:

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const double pi =4*atan(1.0);

const double eps = 1e-6;

int main()

return 0;

}

2015百度之星資格賽1004

題目名稱 放盤子 problem description 小度熊喜歡惡作劇。今天他向來訪者們提出乙個惡俗的遊戲。他和來訪者們輪流往乙個正多邊形內放盤子。最後放盤子的是獲勝者,會贏得失敗者的乙個吻。玩了兩次以後,小度熊發現來訪者們都知道遊戲的必勝策略。現在小度熊永遠是先手,他想知道他是否能獲勝。注意盤...

2015百度之星資格賽1001

題目名稱 大搬家 problem description 近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置 i 上的人要搬到位置 j 上。現在b廠有 n 個人,一對一到 n 個位置上。搬家之後也是一一對應的,改變的只有位次。在第一次搬家後,度度熊由於疏忽,又要求大家...

2015百度之星資格賽1002

problem description 列變位法是古典密碼演算法中變位加密的一種方法,具體過程如下 將明文本元分割成個數固定的分組 如5個一組,5即為金鑰 按一組一行的次序整齊排列,最後不足一組不放置任何字元,完成後按列讀取即成密文。比如 原文 123456789 金鑰 4 變換後的矩陣 1234 ...