1 条题解
-
0
自动搬运
来自洛谷,原作者为

unputdownable
下雨不是任何人的错。搬运于
2025-08-24 22:36:40,当前版本为作者最后更新于2022-02-26 22:38:03,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
考虑如何求出 。
递归,如果 ,;
如果 ,考虑报一遍 :

所以有:
$$J_m(n)=\begin{cases}1 & J_m(n-m+1)=n-m+1\\J_m(n-m+1)+m & \text{else}\end{cases} $$于是可以将 按模 分类,这样在每一类中,除了若干个 的位置外,都是公差为 的等差数列。
考虑每一类中有哪些不满足等差的位置(下称断点)。
由于 的下一项必然是 ,所以一个 对应一个断点。
思考 什么情况下为 :
上面提过 的时候是 ;
当 时,易得 必然是 的倍数,否则报完一圈后 一定当场出局,于是除 后归纳。
可得断点只有 的形式,其中 。
那么每个同余类中就只有 个断点( 正好在 这个同余类中),拆成 个等差数列分别求和即可。
这样就得到了一个 的算法。
对于每一个 暴力找出其前面最后一个断点,就能得到一个 的单点求值算法。
两者结合起来可以得到 分的好成绩。
继续观察第 组的答案。
事实上断点是 的形式,而点的个数是 。
只要断点的个数相同,并且点的个数相同,那么可以发现答案就是关于 的不超过 次的多项式。而断点个数和点的个数都只有两种,所以按这个把要算的东西分成三段,对每一段插值算即可。
时间复杂度 。
- 1
信息
- ID
- 7356
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者