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