看这篇题解
只能说以后看到hard version的先将easy version的做一遍,剩下的想法也比较自然了
update 2024.9.6
重新做一遍,做出来了,按照模拟加分类讨论做的。从a1开始,若一直不降到ak,然后有ak+1<ak,就考虑怎么样把ak+1变得比ak大,此时发现,如果ak+1是正数且ak是正数就可以直接让ak+1加上ak;进一步地可以知道,如果全是正数我们就可以让a2加上a1,a3加上a2,以此类推;对于全是负数的情况同理;对于既有负数又有正数的情况,考虑转换为前两种情况。不难想到根据正数负数的相对个数大小以及正数最大值和负数绝对值最大值的相对大小进行分类讨论。注意的就是前后缀相邻相加的方法最多只会进行n−1次,而不是n次(如果按照n次算就超过31次了)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2023-07-10 LOJ10010 糖果传递