问题1
有一个n行m列的广场,需要用1*2小砖铺盖,小砖之间互相不能重叠,问有多少种不同的铺法?
题解
设f[i][j]f[i][j]f[i][j]表示第iii行,状态为jjj的方案数。在状态jjj中,111表示竖着放长方形的上半部分。000表示其余部分。
显然上一排空缺的部分肯定是要竖着放置的。
就看剩下横着的能不能连续的两个两个放置。
状态转移很显然:f[i][j]=∑f[i−1][k]f[i][j]=\sum f[i-1][k]f[i][j]=∑f[i−1][k]
关键在于我们应该如何选取合法的状态。
- 条件1:j and k=0j\ and\ k=0j and k=0
- 原因:保证上半部分的111下面一定有空缺。
- 条件2:j or k的二进制中不能有连续奇数个0.j\ or\ k的二进制中不能有连续奇数个0.j or k的二进制中不能有连续奇数个0</