状压学习笔记

我好菜啊我居然到现在才学状压......

真的是菜得不行了qwq

另外补了补位运算,对于状压DP还是蛮重要的


状压就是状态压缩,就是把一个状态用一个数表示出来,类似于HASH算法

比如要表示一串灯的状态:

序号 1 --
状态 1 1 0 1 0 1 --
贡献 32 16 0 4 0 1 53

于是这里的53就表示了110101这个状态,即第1、2、4、6这四盏灯亮着

现在我们有了表示状态的方法,但也许会想:上面用十进制表示二进制的数,枚举了全部的状态,DP起来复杂度岂不是很大?没错,状压其实是一种很暴力的算法,因为他需要遍历每个状态,所以将会出现 $ 2^n $ 的情况数量,不过这并不代表这种方法不适用:一些题目可以依照题意,排除不合法的方案,使一行的总方案数大大减少从而减少枚举。比如有些 $ m $ 很大但是 $ n≤10 $ 的时候。


学完之后就该做题了qwq

洛谷P2622关灯问题II

洛谷P1879玉米田

洛谷P1896[SCOI2005]互不侵犯

 

posted @ 2019-02-11 15:05  Uchiha__Itachi  阅读(102)  评论(0编辑  收藏  举报