NIT OJ 1411 惡魔殺怪 解題報告

2021-05-05 15:39:07 字數 1133 閱讀 1113

在魔獸世界裡,獵手碰到了乙個怪物,準備殺怪公升級。此時獵手和怪物的血量分別為b1,b2 ,我們已知獵手對怪物的每次攻擊傷害為a ,而怪物每次對獵手的傷害為b (攻擊的傷害值,即為被攻擊者血量減少的數值),他們交替進攻,獵手身上隨身帶了n個血瓶,只要獵手喝下乙個血瓶,他的血量會立刻恢復到原來的狀態(即血量為b1)。勇敢的獵手不會退縮,會戰鬥到最後一刻。

獵手先進攻。獵手在進攻過程中每次只能選擇乙個動作:要麼砍怪,要麼喝血瓶,。即如果喝血瓶時,就不可以砍怪。

獵手或者怪物任何一方血量減少到0或以下,就立即死亡,不能再進行進攻。如果獵手殺怪成功輸出win,不然輸出lose。

輸入包含多組資料,每組資料佔一行,有5個整數,依次為b1,b2,a,b,n。

對於每組輸入資料,輸出win或者lose表示獵手殺怪是否成功。每組輸出獨佔一行。

sample input:

10 30 3 2 1

4 10 2 2 1

sample output:

lose

lose

hint:

b1,b2,a,b,n的值可能很大(不超過int型)。

思路:

1.明確幾個數量值代表的意義:b1(獵人的血量),b2(怪物的血量),a(獵人對怪物的傷害),b(怪物對獵人的傷害),n(血瓶個數)

2.分析獵人血量減少的因素有:怪物傷害b、還有因為喝血瓶浪費的血量(useexcet) n * (b1 % b)或者 n * b。注意喝血瓶是加滿到上線b1,超過的部分就是浪費的血。

3.計算所有血瓶加上獵人原有的滿血量b1,可知獵人總共有的血量(allhp):(1 + n) * b1 - useexcet

4.分析邊界條件:勝利的情況:怪沒血了,獵人還有血。執行過程:怪物攻擊獵人的次數為damagetime = allhp / b 次喝血瓶次數為 n,所以總共獵人可以攻擊的次數為alldamagetime  = damagetime - n,在alldamagetime次攻擊下 怪物的血減少到 a(以下),因為是獵人先攻擊的,所以最後一次攻擊還是獵人的,即可判斷勝利。

程式流程:計算獵人總共的血量 ---> 計算獵人攻擊次數 ---> 判斷是否勝利 --->輸出結果。

#include

int main()  

return 0;   }

141,整數型別

int,float,double,bool,character,string array,dictionary,元組型別 tuple 可選型別 optional 資料型別的首字母是大寫的 在變數名後面加冒號 和資料型別 var age int 10 一般,沒有必須明確指定變數和常量的型別。如果在宣告...

141 長按鍵入

題目描述 你的朋友正在使用鍵盤輸入他的名字 name。偶爾,在鍵入字元 c 時,按鍵可能會被長按,而字元可能被輸入 1 次或多次。你將會檢查鍵盤輸入的字元 typed。如果它對應的可能是你的朋友的名字 其中一些字元可能被長按 那麼就返回 true。示例 1 輸入 name alex typed aa...

解除安裝qemu 1 4 1

由於通過原始碼安裝的qemu沒有辦法通過系統工具進行解除安裝,也沒有辦法通過make uninstall方法解除安裝,所以只能通過刪除檔案的方式進行解除安裝。qemu可執行檔案預設放在 usr local bin,庫檔案預設放在 usr local libexec,配置檔案預設放在 usr loca...