#P10824. [EC Final 2020] Plants vs Zombies
[EC Final 2020] Plants vs Zombies
Description
庞教授正在玩「植物大战僵尸」。
假设游戏在数轴上进行。游戏中有以下元素:
- 个僵尸。第 个僵尸在时间 出现在数轴的 位置,生命值为 。僵尸的移动速度相同,均为 ,并且它们都向右移动。
- 个地刺。第 个地刺的位置为 ,攻击力为 。
- 一个豌豆射手,位于 位置。它每秒发射 颗攻击力为 的豌豆。
游戏中的每一秒按以下步骤处理:
- 当第 秒开始时,所有 等于 的僵尸出现在位置 。
- 之后,对于每个已经出现且存活的僵尸 ,它会受到位置在 的地刺的攻击,其中 是第 个僵尸的当前位置。因此,它的生命值会减少 $\sum\limits_{1\le i\le m, P_u < p_i \le P_u + V} a_i$。如果僵尸的生命值不超过零,它就会死亡。否则,它仍然存活并且位置增加 。
- 当第 秒结束时,豌豆射手连续发射 颗豌豆。对于每颗豌豆,它会击中当前存活且位置最大的僵尸。如果有多个位置最大的僵尸,豌豆会击中索引最小的那个。被击中的僵尸的生命值减少 。如果僵尸的生命值减少到不超过 ,它就会死亡。豌豆是逐个处理的,而不是同时处理的。(例如,如果一个僵尸被第一颗豌豆击杀,第二颗豌豆无法击中它,因为它在第二颗豌豆发射前已经死亡。)如果没有存活的僵尸,剩下的豌豆将击中空处。
庞教授想知道所有 个僵尸的死亡时间(以秒为单位)。
Input Format
第一行包含五个整数 (),用单个空格分隔。
接下来的 行中的每一行包含两个整数 (),用单个空格分隔。
接下来的 行中的每一行包含两个整数 (),用单个空格分隔。
Output Format
输出一行包含 个整数,第 个整数表示第 个僵尸的死亡时间(以秒为单位)。
3 2 1 2 2
1 11
2 8
1 1
1 2
2 4
2 3 1
Hint
在第一秒:
- 第一个僵尸出现并移动到位置 1。它受到 点伤害( 点来自第一个地刺, 点来自两颗豌豆)。
- 第三个僵尸出现并移动到位置 1。它受到 点伤害(来自第一个地刺)并死亡(因为它的生命值变为 )。
在第二秒:
- 第一个僵尸移动到位置 ,受到 点伤害( 点来自第二个地刺, 点来自第一颗豌豆)并死亡(因为它的生命值变为 )。
- 第二个僵尸出现并移动到位置 。它受到 点伤害( 点来自第一个地刺, 点来自第二颗豌豆)。
在第三秒:
- 第二个僵尸移动到位置 ,受到 点伤害( 点来自第二个地刺)并死亡(因为它的生命值变为 )。
- 这一秒内豌豆没有击中任何僵尸。
因此,僵尸的死亡时间分别是 ,,。(由 ChatGPT 4o 翻译)
京公网安备 11011102002149号