专栏文章
题解:P14111 [ZJCPC 2017] Chiaki Sequence
P14111题解参与者 3已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @minoe2o4
- 此快照首次捕获于
- 2025/12/02 05:43 3 个月前
- 此快照最后确认于
- 2025/12/02 05:43 3 个月前
有点神秘的 adhoc 题。
首先这题中出现的数列在 OEIS 中是有记录的,但是没提供什么有助于解题的信息,只能我们自己分析了...
观察 的递推式,发现问题的关键在于分析 ,可以打出如下一个表:
CPP4, 5, 9, 10, 11, 16, 18, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 36, 37, 39, 42, 44, 45, 46, 48, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 78
大部分相邻项之差都是 ,这是因为 ,此时 ,让最小未出现的数增加了 。但是「乘 」这个操作会给 中加入许多较大的数,这会对数列 的计算在之后产生影响。
为了规避这种影响,我们考虑这样一件事: 有一个很宽松的上界是 ,因为 个数两两之差就最多有 种。而输入的 都不超过 ,我们可以预处理出 的前 项,使得 ,然后我们维护集合 。
如此可以发现,对于 :
而从 到 的变化可以划分为 个连续段,在每个连续段上都有 。根据 可以将这些连续段处理出来,之后每个连续段上的 之和就能直接 计算了。别忘了对每个连续段的结果做前缀和,这样每次询问只需求一个不完整的连续段即可。
最后来分析一下 的取值,由于 ,所以有 ,总时间复杂度就是 。
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...