CF1654E Arithmetic Operations 题解
CF1654E
- 给定一个长度为
的序列 。 - 问至少需要修改几个数才能使得
变为一个等差数列。 , 。
-
我们可以发现值域
实属可疑,我们可以就这点进行分析 -
考虑对于序列的公差
,如果 太大的话经过若干轮就会超过原数的值域,之后的所有数都一定会被修改 -
因此我们可以对
进行根号分治-
当
时,我们设当前从 开始,那么有 ,那我们可以枚举 和 , 把 放到桶中求众数 -
当
时,原序列中的数 个。我们枚举首项 ,则有 ,移向整理得 ,那么我们就枚举首项 和向后枚举 个数,求 的众数即可
-
-
最终复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?