1 条题解
-
0
数组跳跃查询 题解
思路
当 大时,每步至少前进 ,可直接模拟;当 小时,为每个 预处理从每个位置出界所需步数。
做法
子任务 1
逐查询模拟跳跃,复杂度 。
子任务 2
因为 ,每个查询至多进行 次操作,直接模拟。
子任务 3
取阈值 。对每个 ,从后向前计算
越界状态为 0。小 查询直接读取,大 查询模拟。
正确性证明
引理 1 递推式准确给出固定 时从位置 出界的步数。
证明 第一次操作唯一到达 ,其后剩余步数正是该位置的 DP 值。∎
引理 2 两类查询都被正确处理。
证明 小 由引理 1 读取正确预处理值;大 完整模拟题目定义,直到首次出界。∎
定理 算法对每个查询输出正确操作次数。∎
复杂度
时间复杂度 ,空间复杂度 。
- 1
信息
- ID
- 1181
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者