问题描述
某人有nnn次机会攻击mmm个怪兽。攻击时,可以一次攻击bbb只怪兽。每个怪兽有aaa滴血,每次攻击能让bbb只怪兽都减一。
问题解析
很简单。当b>mb > mb>m时,只需判断nnn与aaa的大小关系。nnn大则必定能将mmm只怪兽消灭,反之则一只也无法消灭。当b≤mb \le mb≤m时,因为每次只能选择攻击其中的一部分怪兽,所以需要计算理论上的最大攻击数attacknum=n∗b/aattack_num = n * b / aattacknum=n∗b/a,如果attacknum>mattack_num > mattacknum>m,则mmm只怪兽将被全部消灭,否则将消灭attacknumattack_numattacknum只怪兽。
代码解析
n, m, a, b = list(map(int, input().split()))
if b > m:
res = m if n >= a else 0
else:
attack_num = n * b // a
res = m if attack_num > m else attack_num
print(res)

本文介绍了一种简单的算法,用于模拟玩家攻击多个怪兽的游戏场景。通过计算玩家的攻击次数和攻击力,来确定能够消灭的怪兽数量。算法区分了不同情况下玩家攻击效率的变化。

被折叠的 条评论
为什么被折叠?



