計蒜客僱傭兵問題

2021-09-25 14:43:52 字數 1002 閱讀 1116

題目:

僱傭兵的體力最大值為 m,初始體力值為0、戰鬥力為 n、擁有 x 個能量元素。當僱傭兵的體力值恰好為 m 時,才可以參加乙個為期 m 天的戰鬥期,戰鬥期結束體力值將為 0。在同乙個戰鬥期內,僱傭兵每連續戰鬥 n 天,戰鬥力就會上公升 1 點,n 為當前戰鬥期開始時的戰鬥力。乙個戰鬥期結束後,僱傭兵需要用若干個能量元素使其體力恢復到最大值 m,從而參加下乙個戰鬥期。每個能量元素恢復的體力值不超過當前的戰鬥力。每個能量元素只能使用一次。請問:僱傭兵的戰鬥力最大可以到達多少。說明:只在戰鬥期結束後可以使用能量元素,可以使用多個能量元素。輸入格式一行包括三個整數 m、n、x,相鄰兩個整數之間用單個空格隔開。m、n、x 均為不超過10000 的正整數。輸出格式輸出乙個整數,為僱傭兵的最大戰鬥力。

輸入:5 2 10

輸出:6

我的**:

ac = input().split()

m = int(ac[0])

n = int(ac[1])

x = int(ac[2])

mm=m

while x>0 and mm==m: #沒有mm==m這個限制條件的話執行超時,沒有其他必要的作用

mm=0 #flag作用

if m>n:

if m % n == 0:

if x >= m // n:

x -= m // n

mm=m

else:

if x > m // n:

x -= m // n + 1

mm=m

else:

if x > 0:

x -= 1

mm=m

if mm==m: #當體力值達到最大時才有機會增加戰鬥力

n += m // n

print(n)

一如既往使用的是python語言

細節比較多,多嘗試**塊可以來回換先後次序;也要注意審題,初始體力值為0。

僱傭兵問題(Python解答)

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