Dual (Hard Version)

这篇题解

只能说以后看到hard version的先将easy version的做一遍,剩下的想法也比较自然了

update 2024.9.6

重新做一遍,做出来了,按照模拟加分类讨论做的。从a1开始,若一直不降到ak,然后有ak+1<ak,就考虑怎么样把ak+1变得比ak大,此时发现,如果ak+1是正数且ak是正数就可以直接让ak+1加上ak;进一步地可以知道,如果全是正数我们就可以让a2加上a1a3加上a2,以此类推;对于全是负数的情况同理;对于既有负数又有正数的情况,考虑转换为前两种情况。不难想到根据正数负数的相对个数大小以及正数最大值和负数绝对值最大值的相对大小进行分类讨论。注意的就是前后缀相邻相加的方法最多只会进行n1次,而不是n次(如果按照n次算就超过31次了)

posted @   最爱丁珰  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2023-07-10 LOJ10010 糖果传递
点击右上角即可分享
微信分享提示