在状态压缩类型的动态规划中,我们巧妙地利用二进制数来表示状态。以铺砖问题为例,我们可以将每一行的铺砖情况看作一个阶段的状态。

假设每一行有 w 个格子,我们可以用一个 w 位的二进制数来表示该行的状态。其中,1 表示该格子铺了砖,0 表示该格子未铺砖。

例如,二进制数 100 表示该行的第一个格子铺了砖,而第二和第三个格子未铺砖。

通过这种方式,我们可以将状态的转移转化为二进制数之间的转换。例如,状态 100 可以转移到 111, 100110