假设二分出来需要 \(mid\) 回合
则最多造成的伤害是 \(\sum_{i=1}^{mid}\max(\min(t_i,i)\times d_i)\)
以一组数据进行研究,\(H=200\)。
1 21
1 1
1 1
8 4
30 1
3 1
10 2
8 1
9 1
4 4
按照 \(t_i\times d_i\) 从大到小排序。
8 4
30 1
1 21
10 2
4 4
9 1
8 1
3 1
1 1
1 1
如果对于两个技能 \(i,j\),满足 \(t_i\times d_i\ge t_j\times d_j\),且 \(t_i\le t_j\),那么 \(t_j\) 就没有存在的必要了。比如 \((8,4),(30,1)\),前者不仅攻击周期短,而且总伤害高,后者就没有用了。所以进一步精简。
8 4
1 21
只有一下两种技能可能被使用。\(8,4\) 为一技能,\(1,21\) 为二技能。
假设 \(mid=31\)。那么在 \([1,24]\) 回合放技能都可以做到满的伤害。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|
放一:4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | |
放一:4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | |
放一:4 | 4 | 4 | 4 | 4 | 4 | 4 | ||
放一:4 | 4 | 4 | 4 | 4 | 4 | |||
放二:21 | 放二:21 | 放二:21 | 放二:21 | 放二:21 |
\(32+32+28+24+5*21=221>200\)。
可以发现在第五次时,由于后面时间不够,技能一的贡献变为 \(5\times 4=20<21\),放技能2更优了。
我们可以通过计算得出这个分水岭。
\[xd_i<t_jd_j \]\[x<t_jd_j\div d_i \] 标签:21,mid,damage,times,放二,放一,技能 From: https://www.cnblogs.com/wscqwq/p/17474729.html