×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
回『UVa 題庫』
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 大大就叫我修改這題翻譯,如今的我看到過去,眞的太羞恥了。英文依舊的爛啊。眞的是對不起到今天為止看過這題上個版本翻譯的人。
標籤:
出處:
UVa
11061
[管理者:
Unknown User
]
本題狀況
本題討論
排行
推
編號
身分
題目
主題
人氣
發表日期
沒有發現任何「解題報告」