但是我怎么判断一个人是否被选了多次呢?
如果能问出这个问题,就说明我们陷入了思维定式
我们以前的状态压缩都是以二进制状态为阶段进行DP,这里我们如果再这么做,就必须记录某一位求职者是否被选择了,那么时空复杂度根本无法承受
所以我们换个思路,直接以求职者为阶段,当一个背包做
讲一下为什么这种代码一个人不会选多次:因为或操作的结果会让\(i\)(\(j\))增大(至少不变),而我们用的是刷表法,就相当于背包中体积更大被体积更小的更新,由于是倒序循环,所以可以保证每个人只被选择一次
说到刷表法,状态压缩里面很多时候刷表法比填表法更好写,所以以后可以多尝试写刷表法
另外,这道题目当然也可以用三进制状态压缩
标签:状态,背包,压缩,烦恼,刷表法,求职者,我们,校长 From: https://www.cnblogs.com/dingxingdi/p/17995279