对于某些动态规划问题,可以用深搜来枚举状态,但是那样的话时间复杂度就太高了。对于此类问题我们采用二进制表示状态,用1和0来表示某位置不同的状态。 1、对于状压DP问题,我们一般取一个初始状态。确定状态数组的含义。 2、明确相邻状态的转移,一般我们可以记录某个状态可以转移的相邻状态(打表)。 3、然后从第一行(列)枚举到最后行(列)[视具体情况而定],根据符合条件的相邻之间的状态转移,由前面推出后面(往往最后才是最终答案)。
下面是做得几道题: