算法——状态压缩动态规划(状压dp)状态压缩动态规划(状压dp)
状态压缩动态规划(状压dp)动态规划实际上就是重复使用历史记录。有时候在解决一个问题的时候,通常是将问题转化为一系列的子问题,子问题再转化为一些的子问题,这样就把大问题细化成了小问题,但是在所有的子问题中可能出现相同的子问题,于是动态规划就将每种的不同的子问题存储到表中,当再次遇到相同的子问题就从表中查找已存的历史记录即可,减少计算时间。把历史记录称作为状态。通常用一位数组dp[]或者二维数组dp[][]甚至三维数组dp[][][]来保存历史记录(状态)。有时候对于一些问题,其状态表示很复杂,需