ARC152C 题解
blog。可能是很简单的,但是我实在是不会这种神秘题 /ll /ll。
- Conclusion1. 记 \(d=a_n-a_1\),则极差始终等于 \(d\)。证明显然。
- Conclusion2. 操作极值时,最小值始终变化为 \(d\),并且可以进行无限次这样的变化。证明显然。
题意转变:最小化 \((\texttt{最小值} \bmod d)\),且最小值始终非负,输出这个值 \(+d\)。
由 Conclusion2,可以通过提前加上充分多个 \(d\) 来避免负数的问题。
题意转变:最小化 \((\texttt{最小值} \bmod d)\),输出这个值 \(+d\)。
操作 \(x\) 可以使 \(a_1\to 2x-a_1\),即 \(a_1\) 加上了 \(2(x-a_1)\),再操作下原本的 \(a_n\) 就可以使最小值加上 \(2(x-a_1)\)。
同理,我们也可以使最小值减去 \(2(x-a_1)\)。于是我们有:
- Conclusion3. 最小值可以任意加减 \(2(a_i-a_1)\) 无限次。
由裴蜀定理,线性组合这些东西,可以使最小值任意加减 \(g=\gcd\{d, 2(a_2-a_1), 2(a_3-a_1), \cdots, 2(a_n-a_1)\}\) 次,答案即 \((a_1\bmod g) + d\)。模拟即可。\(O(n)\)。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)