题目源自洛谷;
题目大意:
模拟植物大战僵尸的一排,可以理解成豌豆射手对第一个僵尸发射激光,造成持续伤害并且第一个僵尸死后第二个僵尸立马收到伤害。
然后不同的是,有n个回合,每回合在僵尸队列前端会添加一个僵尸,之后的僵尸会往后移动d个距离,n个回合单独计算。求n个回合杀死所有僵尸的最小攻击力(hp/s)。
题目讲解:
首先模拟一下样例,贪心的求:在第i个回合,能杀死前j个僵尸的攻击力,取最大值;数学表达就是 m a x ( s u m i − s u m j − 1 x i + ( i − j ) ∗ d ) max(\frac{sum_i-sum_{j-1}}{x_i+(i-j)*d}) max(xi+(i−j)∗dsumi−sumj−1)
得到公式后,很显然,可以转化为两点求斜率的式子:
s u m i − s u m j − 1 x i + i ∗ d − j ∗ d \frac{sum_i-sum_{j-1}} {x_i+i*d-j*d}