最近xhd正在玩一款叫做fate的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他能升掉这最后一级吗?
时间: 2023-05-31 13:19:07 浏览: 215
### 回答1:
最近XHD正在玩一款叫做Fate的游戏,为了得到极品装备,XHD在不停的杀怪做任务。久而久之,XHD开始对杀怪产生恐惧感,但又不得不通杀怪来升完这最后一级。现在的问题是,XHD升掉最后一级还需n的经验值,XHD还留有m的耐久度,每杀一个怪XHD会得到相应的经验,同时减去相应的耐久度。当耐久度降到0或以下时,XHD就不会玩这游戏。XHD还说了他最多只杀S怪只怪。请问他能升掉这最后一级吗?
### 回答2:
针对这个问题,我们可以运用贪心算法来解决。首先,我们需要知道每个怪物所能带来的经验值和减少的忍耐度,然后按照每个怪物带来的经验值从高到低的顺序进行排序。
接下来,我们可以用一个循环不断地选择能够带来最高经验值的怪物来击杀,直到升到最后一级为止。每选一个怪物,我们就要减去相应的忍耐度,如果此时忍耐度小于0,那么就退出循环,不能再继续击杀怪物了。
此时,我们可以得到一个结论:如果能够攻击到第s只怪物,同时忍耐度大于等于0,那么xhd就可以在击杀这只怪物的时候升到最后一级。因为如果xhd需要攻击更多的怪物才能升到最后一级,那么其实先攻击这只怪物的收益也会更高,因为它是按照每个怪物带来的经验值从高到低的顺序进行排序的,如果先攻击这只怪物所需要的忍耐度已经大于等于0了,那么攻击其他怪物所获得的经验值肯定比攻击这只怪物所获得的经验值要低。
综上所述,只要忍耐度大于等于0,且能够攻击到第s只怪物,xhd就可以在击杀这只怪物的时候升到最后一级。
### 回答3:
首先需要知道xhd当前的忍耐度和升级还需要的经验值,然后才能算出他需要杀的怪物数量。
假设xhd目前的忍耐度为m,升级还需要的经验值为n,每杀一个怪物可以得到x经验,并扣除y的忍耐度。则xhd需要杀的怪物数量为:
需要杀怪物数量 = ceil(n / x) (向上取整)
通过每杀一个怪物可以得到x经验,又需要杀的怪物数量为ceil(n / x),因此xhd总共可以获得的经验值为:
总共可以获得的经验值 = x * ceil(n / x)
那么xhd最多可以杀的怪物数量为s,可以通过以下公式求得:
s = floor(m / y)
如果s大于等于需要杀的怪物数量,则xhd可以升掉最后一级,否则就无法升级了。
综上所述,xhd能否升掉最后一级,可以通过以下计算方法得出:
总共可以获得的经验值 <= n (所需经验值) 并且 s >= ceil(n / x) (需要杀怪物数量)
如果以上两个条件都满足,那么xhd能够升掉最后一级,否则就无法升级了。
阅读全文