最近学了状压dp,把之前未解决的题目捋一捋。
这是之前的一道题
今天蒜头君装修新家,给家里买了一种 1×2或2×1 的长方形(如图1)新瓷砖。蒜头君是个懂得审美的人,毕竟人生除了金钱,还有诗和远方。
这个时候蒜头君就在想,这种长方形的瓷砖铺到一个 10×10 10 \times 10 10×10 的地面上有多少种方案?(如图2:是 4×44 \times 44×4 地面的一种方案)
图1:
图2:
问10×10的地面用2×1的瓷砖铺能有多少方案。
我们直接一般化,有n×m的地面,求有多少种方案。
n×m的地面是有一道例题的 POJ2411,然后附上一篇自己认为还比较详细的题解
https://blog.csdn.net/u014634338/article/details/50015825
但是我也会讲解一点。
思路还是老思路,由前一行来推下一行。
首先我们选好状态的表示方法,1表示影响下一行,0表示不影响,为什么这样表示,因为这样可以很好的表示横着铺和竖着铺两种方案,1就表示这个格子是竖着铺的第一行,0表示这个格子可能是横着铺的中间一个,也可能是竖着铺的第二个格子,反正0就不影响,下一行不用考虑。
这是别人附的一张图,它是用0表示影响的,1表示不影响。
然后了解