题目:
给你n*m(1<=n,m<=11)的方格矩阵,要求用1*2的多米诺骨牌去填充,问有多少种填充方法。
比如下图是对于如下2x6的方格矩阵,可能的填充方案之一。
该如何使用动态规划的方式解决这道题呢?先了解一下状态压缩算法。
状态压缩通常是使用一个整数来表示一个集合,比如整数3,二进制表示为11,第一位状态为1,第二位状态为1,数字2的二进制表示为10,第一位的状态为1,第二位的状态为0,数字1的二进制表示为01,第一位为0,第二位为1,数字0的二进制可以表示为00,两位的状态都是0。
这就是说,状态可以保存在一个整数里面,对于状态压缩DP,其实也是用状态压缩后的整数表示一个维度,然后进行状态转移。