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

HyB_Capricornus
黄梅时节家家A,青草池塘处处WA,有WA不A过夜半,闲切红题冒火花搬运于
2025-08-24 22:46:08,当前版本为作者最后更新于2023-04-05 22:28:51,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
还没有人发题解,我来一发。
Sol
设原序列为 。
令操作 为将 挪至 ,将 挪至 ,,将 挪至 。
令操作 为将序列逆时针转 次,即 ,,,。
令操作 为将序列顺时针转 次。
重点来了:
我们可以把将 向后挪再进行 操作想成先将 逆时针转 次,然后进行 操作,然后再顺时针转回去
当然每次转的次数不同,例如进行两次将 向后挪再进行 操作,我们就需要逆时针转 次,然后进行 操作,然后再顺时针转回去
则操作为:
其中 与 可以抵消,抵消后结果为:
我们称 为 操作
我们创建数组 ,其中 表示进行 次 操作把 挪到了 位置。
通过倍增,原始暴力的复杂度 成功优化到 ,复杂度显然可以通过本题。
最后不要忘了顺时针转 次,这道题目就做出来了。
代码
一些忠告:
- 最后不要忘了顺时针转 次。
- 本人代码 行, 很大,需要取模,否则会变成负数(赛时被卡)。
- 请不要抄题解。
- 1
信息
- ID
- 8557
- 时间
- 4000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者