僱傭兵的體力最大值為m,初始體力值為0、戰鬥力為n、擁有x個能量元素。
當僱傭兵的體力值恰好為m時,才可以參加乙個為期m天的戰鬥期,戰鬥期結束體力值將為0。在同乙個戰鬥期內,僱傭兵每連續戰鬥n天,戰鬥力就會上公升1點,n為當前戰鬥期開始時的戰鬥力。
乙個戰鬥期結束後,僱傭兵需要用若干個能量元素使其體力恢復到最大值m,從而參加下乙個戰鬥期。每個能量元素恢復的體力值不超過當前的戰鬥力。每個能量元素只能使用一次。
請問:僱傭兵的戰鬥力最大可以到達多少。
一行包括三個整數m、n、x,相鄰兩個整數之間用單個空格隔開。m、n、x均為不超過10000的正整數。
輸出乙個整數,為僱傭兵的最大戰鬥力。
5
210
6
注意題目中黃色高亮部分,是題目的要點
m,n
,x=map
(int,
input()
.split
(" "))
battle =
n//當前戰鬥力
s =0
//體力初始化為0
while
x>
0 and s <=m:
x-=1//每消耗乙個能量元素,
s = s+battle if
(s+battle <=m)
else
m//增加的體力不超過當前戰鬥力battle,最大不超過最大戰鬥力m
if s ==m:
//僅當體力為最大戰鬥力m時才可以進行乙個戰鬥週期
battle += s//battle //每連續戰鬥(週期開始前的戰鬥力battle)天戰鬥力加一
s =0//戰鬥週期結束體力歸零
print
(battle)
小生不才,歡迎指正 計蒜客僱傭兵問題
題目 僱傭兵的體力最大值為 m,初始體力值為0 戰鬥力為 n 擁有 x 個能量元素。當僱傭兵的體力值恰好為 m 時,才可以參加乙個為期 m 天的戰鬥期,戰鬥期結束體力值將為 0。在同乙個戰鬥期內,僱傭兵每連續戰鬥 n 天,戰鬥力就會上公升 1 點,n 為當前戰鬥期開始時的戰鬥力。乙個戰鬥期結束後,僱...
T1084 僱傭兵問題
僱傭兵的體力最大值為 m,初始體力值為 0 戰鬥力為 n 擁有 x 個能量元素。當僱傭兵的體力值恰好為 mm 時,才可以參加乙個為期 mm 天的戰鬥期,戰鬥期結束體力值將為 00。在同乙個戰鬥期內,僱傭兵每連續戰鬥 nn 天,戰鬥力就會上公升 11 點,nn 為當前戰鬥期開始時的戰鬥力。乙個戰鬥期結...
僱傭兵(程式設計與演算法(一)
描述 僱傭兵的體力最大值為m,初始體力值為0 戰鬥力為n 擁有x個能量元素。當僱傭兵的體力值恰好為m時,才可以參加乙個為期m天的戰鬥期,戰鬥期結束體力值將為0。在同乙個戰鬥期內,僱傭兵每連續戰鬥n天,戰鬥力就會上公升1點,n為當前戰鬥期開始時的戰鬥力。乙個戰鬥期結束後,僱傭兵需要用若干個能量元素使其...