状态压缩动态规划

状压,即状态压缩的简称,是一种(在数据范围较小的情况下,一般来说 \(N \le 20\))将每个物品或者东西选与不选的状态“压”成一个整数的方法

通常我们采用二进制状压法,(对于二进制状压)即对于一个我们“压”成的状态,这个整数在二进制下中的 1 表示某个物品已选,而 0 代表某个物品未选,这样我们就可以通过枚举这些“压”成的整数来达到枚举所有的物品选与不选的总情况,通常我们称这些情况叫做子集,对于这个状态整数,通常设为 \(s\)

(对于二进制状压)通过二进制下的位运算来达到判断某个物品选与不选的情况,再通过这个状态来进行一些其他的扩展,所以状压能简化我们对于问题的求解方式

而状压dp正是用到了这一点,通过一个状态来表示整体情况,对于这个情况进行一些最优化操作,最终达到求得全局最优解的目的

在这里,状压dp需要用到一些位运算的知识,下面给出一张图说明

posted @ 2022-10-06 16:31  「ycw123」  阅读(16)  评论(0编辑  收藏  举报