午餐

受到国王游戏的启发,我们可以考虑当一个队伍的人定了之后,如何排序会最优

利用国王游戏的方法会发现是按照b数组递减排序

如果不交换,是max(ai+bi,ai+ai+1+bi+1),交换之后是max(ai+1+bi+1,ai+ai+1+bi)

我们有max(ai+bi,ai+ai+1+bi+1)max(ai+1+bi+1,ai+ai+1+bi)

由于ai+biai+bi+ai+1ai+1+bi+1ai+1+bi+1+ai

所以上面这个不等式等价于ai+1+bi+1+aiai+ai+1+bi,也就是bi+1bi

于是再利用DP考虑每一个人是在第一支队伍还是第二支队伍

这里重新做这道题目的时候,发现思路被陪审团给限制了,设置DP状态的时候一直在用维度表示一支队伍的状态,DP值表示另一只队伍的状态;这道题目给我们的启示就是,我们也可以同时用维度表示两只队伍的状态,DP值也同时表示两支队伍的状态

然而,像陪审团这道题目,可不可以用一维来表示两支队伍的时间差值呢?想一下不太清楚

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