【思路要点】
- 将划分和标号放在一起考虑,即依次放入标号为 1∼N×M31\sim{}\frac{N\times M}{3}1∼3N×M 的骨牌,保证当前放入区域的轮廓线为单调的,不难发现放置方案与题目中所要计算的方案数一一对应。
- 将轮廓线描述为 NNN 个 “上” 和 MMM 个 “右” ,用 111 来表示 “上” , 000 来表示 “右” ,则初始时的轮廓线为 111…1000…0111\dots1000\dots0111…1000…0 。
- 观察转移,也即放置一个新的骨牌的方式:
1000→00011010→00111100→01011110→01111000\rightarrow 0001\\1010\rightarrow 0011\\1100\rightarrow 0101\\1110\rightarrow 01111000→00011010→00111100→01011110→0111- 可以发现,所有的转移可以归纳为 “使得一个 111 与 333 格外的一个 000 交换位置,且中间的数对转移没有影响” 。
- 将模 333 相同的位置分别考虑,最后用组合数合并答案,则转移即为 10→0110\rightarrow01

这篇博客探讨了Trominoes(三格骨牌)的放置问题,通过将划分和标号结合,保证轮廓线单调。利用1和0表示上下和右边,分析转移过程,得出每一步都是10转换为01。通过组合数学的钩子公式或LGV-Lemma计算方案数,提出O(N×M+T×(N+M)Log(N+M))的时间复杂度解决方案。
最低0.47元/天 解锁文章
503

被折叠的 条评论
为什么被折叠?



