关于如果不循环跳最大步数的证明
查看原帖
关于如果不循环跳最大步数的证明
566363
GY程袁浩楼主2024/10/3 19:26

前言:我是傻逼,橙题都不会做。

考虑对于每个能量,我们都有第一个变成这个能量时在的点,记第一次处于此能量时在的点是 fifi,此能量为 pp,那么我们处于此能量时所在的点编号一定都有

xfi(modp)\begin{aligned} x \equiv fi \pmod{p} \end{aligned}

这样的点数最多有 np\lceil \frac{n}{p} \rceil 个,并且我们只会有一个第一次处于该能量的点。所以能量 pp 对步数的最大贡献是 np\lceil \frac{n}{p} \rceil 的。

调和级数,即大约最多 nlognn \log n 次。

所以暴力的时间复杂度是 O(nlogn)O(n \log n) 的。

注意:不讨论循环的情况。

2024/10/3 19:26
加载中...