在状态压缩类型的动态规划中,我们巧妙地利用二进制数来表示状态。以铺砖问题为例,我们可以将每一行的铺砖情况看作一个阶段的状态。
假设每一行有 w 个格子,我们可以用一个 w 位的二进制数来表示该行的状态。其中,1 表示该格子铺了砖,0 表示该格子未铺砖。
例如,二进制数 100
表示该行的第一个格子铺了砖,而第二和第三个格子未铺砖。
通过这种方式,我们可以将状态的转移转化为二进制数之间的转换。例如,状态 100
可以转移到 111
, 100
或 110
。
在状态压缩类型的动态规划中,我们巧妙地利用二进制数来表示状态。以铺砖问题为例,我们可以将每一行的铺砖情况看作一个阶段的状态。
假设每一行有 w 个格子,我们可以用一个 w 位的二进制数来表示该行的状态。其中,1 表示该格子铺了砖,0 表示该格子未铺砖。
例如,二进制数 100
表示该行的第一个格子铺了砖,而第二和第三个格子未铺砖。
通过这种方式,我们可以将状态的转移转化为二进制数之间的转换。例如,状态 100
可以转移到 111
, 100
或 110
。