1 条题解
-
0
1. 操作的性质分析
设 表示对鱼 使用 A 操作的次数, 表示对鱼 使用 B 操作的次数。
那么鱼 的最终智力为: = +
2. 重新表述问题
定义前缀和 ,则有: =+
3. 可行性条件
从上面的分析,我们可以得出:
必须是非递减序列(因为 )
必须是 的倍数
4. 贪心构造
为了最小化 ,我们需要最大化 ,但受到约束:
(即 和 模 同余)
非递减
因此最优策略是:对于每个 ,选择不超过 的最大值,使得 ,同时保持序列非递减。
5. 算法设计
对于区间 的查询:
检查可行性:
从 到 ,我们需要构造非递减序列 满足上述条件
关键检查:是否存在 使得我们无法构造合法的
计算最小 A 操作次数:
如果可行,答案为
其中 是按上述贪心策略构造的
6. 高效实现
由于 可达 ,我们需要 或 处理每个查询。
关键技巧:
预处理每个位置 的 (即不超过 的最大 的倍数)
对于区间 ,我们需要检查 是否构成非递减序列
如果不是,需要将某些 调小以保持非递减,但要尽量大
这可以用单调栈或线段树维护区间最小值、最大值等信息。
复杂度分析
预处理:
每个查询:使用合适的数据结构可以做到
总复杂度:,可以应对最大数据范围
- 1
信息
- ID
- 4743
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者