d771. 11061 - Playing War
標籤 :
通過比率 : 15人/22人 ( 68% ) [非即時]
評分方式:
Tolerant

最近更新 : 2015-08-13 01:47

內容

“War”在巴西是一款非常有名的經典棋盤遊戲。在這個遊戲中,將整個世界分配給玩家們,玩家可能會擁有一個或是多個地區。每個玩家可能有不同的目標,但是在一般情況下,玩家會以獲得最多領土當作目標去實現。

玩家可以在自己領土配置一個或是數個軍隊。在每一回合,玩家有機會使用軍隊攻擊或是佔領其他領土。在攻擊的時候,至少要留下一個軍隊在原來領土,舉例來說,玩家的某塊領土有三個軍隊,最多只可以派出二個軍隊去攻擊鄰近的領土。在防禦的時候,可以動員被攻擊領土內的所有軍隊去防守。每次戰鬥,不管是攻擊方或是防禦方最多都只能派出三個軍隊,意思就是說,就算擁有超過三個軍隊,每次戰鬥也只能派出三個軍隊。

每次戰鬥都是使用一般的六面骰子分出勝負。在每次的戰鬥,攻擊方和防禦方要為她們所派出的每個軍隊都擲一次骰子。

雙方的軍隊會損失多少,就依照以下的規則做計算:

一、將雙方軍隊擲出數值分別都以遞減排列。

二、比較雙方最高數值的軍隊,接著比較第二高數值的軍隊,以此類推下去,如果有一方沒軍隊則不做比較。

三、攻擊方唯有數值比防禦方大,才會獲勝,如果數值一樣當然就是防禦方獲勝。

四、輸掉的軍隊就會被消滅(損失)。

這邊來舉個戰鬥的例子,假設攻擊方有三個軍隊,分別擲出了三點、六點和五點;防禦方有二個軍隊,分別擲出了四點和六點。攻擊方的軍隊數值排列後分別為六點、五點和三點;防禦方的軍隊數值排列後分別為六點和四點。接著比較最大數值的軍隊,兩方皆為六點,防禦方獲勝,攻擊方損失一個軍隊;比較第二大數值的軍隊,攻擊方為五點,防禦方為四點,攻擊方獲勝,防禦方損失一個軍隊;比較第三大數值的軍隊,防禦方沒有派出軍隊,所以就不用比較。此次的戰鬥雙方接損失了一個軍隊。

玩家能夠在同一回合,連續使用剩下的軍隊攻擊敵人的領土(玩家可以一直持續的攻擊到沒軍隊為止,但是每次派出的軍隊依舊是最多三個),正常的玩家通常都會盡可能的派出最多軍隊去參加戰鬥,雖然規則也是允許派出較少軍隊,聰明的你一定不會這麼做的。不過也有些玩家比較神經質,一旦開始攻擊某塊領土時,就不會停止,會一直持續到某方沒有軍隊為止(也就是說攻擊方剩下一個軍隊或是防禦方剩下零個軍隊)。

Elbdson就是屬於神經質的玩家,同時也是個電腦工程師。這次他邀請了他的朋友們來到他的屋子玩“War”,在這之前他打算先寫一個程式,計算他的領土要擁有多少的軍隊,才會有 50% 的勝率可以打下擁有 X 個軍隊的其他領土(敵方軍隊變零個)。想一想,聰明的你當然也可以做到一樣的計算,做不出來並不是不聰明,而是你稍微的懶了一點。 

    

輸入說明

輸入文件包含多筆輸入。每行都有一個整數 X (1 ≤ X ≤ 1000) ,代表敵人的領土有多少軍隊在。當 X 等於 0 時,不用處理並且結束程式。

輸出說明

對於每一個輸入輸出一行數字,計算 Elbdson 最少需要擁有多少個軍隊,去攻擊敵人的領土,才能夠使得佔領下來的機率大於 0.5。

範例輸入 #1
1
2
3
0
範例輸出 #1
3
4
6
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 3.0s , <1M
提示 :
早在 14 年寒假 morris 大大就叫我修改這題翻譯,如今的我看到過去,眞的太羞恥了。英文依舊的爛啊。眞的是對不起到今天為止看過這題上個版本翻譯的人。
標籤:
出處:
UVa11061 [管理者:
Unknown User
]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」