本题需要模拟一个带有全局衰减机制的能量核心处理过程。由于每次处理前所有激活类型的能量值都减少相同的量(都是 1),我们可以将“能量值”转化为“能量衰减截止时间”,从而避免显式地对所有类型进行衰减操作。
核心观察:
设当前时间为 time,某个类型的能量值为 E,那么它将在未来第 E 个时间步结束时能量值变为 0,即它在时刻 time + E 衰减为 0。因此,若我们记录每个激活类型的能量衰减截止时间 expire,则只要在某个时间步 time 检查 expire == time 即可判定该类型刚刚变为未激活状态。
具体算法步骤:
在一个能量核心系统中,工程师需要依次处理 n 个能量核心,每个核心有一个类型编号。系统会为每种类型维护一个“能量值”,初始时所有类型的能量值均为 0。处理过程按以下规则进行:
任意时刻,能量值大于 0 的类型视为处于激活状态。你需要计算在整个处理过程中,同时处于激活状态的类型数量的最大值。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册