The Solution of P8412
Official Editorial.
题意
定义函数
解法
Subtask 1
直接输出
Subtask 2
直接暴力枚举并用 map 维护即可。时间复杂度为
Subtask 3
首先,我们需要知道
证明:令
因为
注意到
接下来根据构造出的
-
直接暴力处理 $f(i^i)$ 的前缀和并将其存入 map,枚举计算即可。时间复杂度为 $O(k \log k)$。 -
将其分为两部分处理。 - $l\le i\le\varphi(k-1)$:同上。 - $\varphi(k-1)<r$:考虑扩展欧拉定理,发现此时 $f(i^i)$ 存在循环节,循环节起点为 $\varphi(k-1) + 1$,循环节长度为 $\operatorname{lcm}(k-1,\varphi(k-1))$。考虑预处理出**整个循环节中前缀和 $\leq p$ 的部分**并枚举循环次数以及在 map 中查询。时间复杂度为 $O(\log k(k^2 + \frac{p}{k}))$。 -
考虑钦定 $l$ 位于第一个循环节中(反正都要循环)。\ 接下来先特判 $l,r$ 均位于第一个循环节的情况,然后再枚举 $r$ 位于第几个循环节。设一个循环节内 $f(i^i)$ 的和为 $sum$,考虑到 $l \sim r$ 之间(不包括 $l,r$ 所在循环节)的循环节数 $cnt$ 一定满足 $cnt\cdot sum\le p\le sum\cdot(cnt+2)$,直接枚举至多三个循环节即可。时间复杂度为 $O(k^2 \log k)$。
综上,时间复杂度为
Subtask 4
加上哈希即可。
时间复杂度为
代码
向 CSP_Sept 或洛谷氪金即可获得。