Earn or Unlock

我们将操作过程中选择进行操作一的卡片称为“抛弃”,显然被抛弃的卡片的顺序无关紧要,所以如果我们确定了抛弃的卡片的编号,我们从小到大进行抛弃就好了

image

证明非常简单,因为最终解锁了k张卡片,所以中途被抛弃了的卡片的v的和就是k1,而我们最终的得分就是前k张卡片的v的和减去被抛弃的卡片的v的和,所以可以得到上面的性质

于是我们可以设计一个可行性DP,f[i][j]表示前i张卡片是否可以以合法的方式解锁j张卡片

这样子显然超时。我们对可行性DP的优化一般是利用贪心或者可行性转最优性,这里给出了一种新做法,利用bitset加速,具体见这篇题解

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