校长的烦恼

但是我怎么判断一个人是否被选了多次呢?

如果能问出这个问题,就说明我们陷入了思维定式

我们以前的状态压缩都是以二进制状态为阶段进行DP,这里我们如果再这么做,就必须记录某一位求职者是否被选择了,那么时空复杂度根本无法承受

所以我们换个思路,直接以求职者为阶段,当一个背包做

讲一下为什么这种代码一个人不会选多次:因为或操作的结果会让ij)增大(至少不变),而我们用的是刷表法,就相当于背包中体积更大被体积更小的更新,由于是倒序循环,所以可以保证每个人只被选择一次

说到刷表法,状态压缩里面很多时候刷表法比填表法更好写,所以以后可以多尝试写刷表法

另外,这道题目当然也可以用三进制状态压缩

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