僱傭兵問題(Python解答)

2021-10-25 02:01:51 字數 926 閱讀 5600

僱傭兵的體力最大值為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為當前戰鬥期開始時的戰鬥力。乙個戰鬥期結束後,僱傭兵需要用若干個能量元素使其...