如何攻击这个拼贴拼图?

时间:2012-10-06 07:07:49

标签: algorithm tiling

[SRM 209,Div I上的1000点问题]

在某个阶段,问题会缩小到以下几点:

给定三个方块的块,如下所示,可以任何方式旋转,有多少种方法可以填充给定大小的矩形块。

| x | x |
| x |

例如,对于3x4的块,有4种方法来排列这些块。我正在寻找一种方法来解决这个问题,而不是实际的解决方案。我如何找到方法的数量。有很多方法可以实现,我也没有看到DP方法的重叠子问题。

欢迎任何见解。

1 个答案:

答案 0 :(得分:-1)

毫无例外地,每个带有L形瓷砖的pxq空间块的平铺将减少为2x3块的平铺,包括成对的L形平铺。即瓷砖的形式为:

        xx      xx
        xy  or  yx  to form a vertical 2x3 block or
        yy      yy

        xyy       xxy
        xxy  or   xyy  to form a horizontal 3,2 block.

因此,您已经可以将问题减少到具有2x3和3x2矩形的矩形的“镶木地板”平铺。当然,除非你正在铺设一个不规则的非矩形区域 - 在这种情况下你必须单独考虑L形瓷砖。