瓷砖可以旋转。
示例:
鉴于两个1 * 2瓷砖和一个1 * 3瓷砖,地板为3 * 3,我们将所有瓷砖放入地板,如下所示:
AAA
..B
CCB
现在,给定n * m层和p 1 * 2块和q 1 * 3块(块的数量有限)。返回可放入地板的最大瓷砖数量。例如,答案是3(你可以将3块瓷砖放在地板上)。
答案 0 :(得分:5)
可能还有一些额外的复杂性,但这是我的想法:
用1x2瓷砖填满整个地板。它应该很简单,只要确保它主要由平行的瓷砖组成,如下所示:(黑色和白色都是瓷砖)
注意我刚用水平方块而不是垂直方式填充底行,这只是为了填满网格。并且左下方的瓷砖是空的(您可能希望用1x3瓷砖替换它右侧的瓷砖)。
如果您没有那么多1x2瓷砖,仍然完全填满网格,它们将在下一步中被删除。
虽然您没有足够的1x2瓷砖放置,但系统地用2个1x3瓷砖替换3个平行的1x2瓷砖。所以:
变为
答案 1 :(得分:2)
Dukeling的答案是错误的。考虑5 * 5楼层和8 1 * 3瓷砖。将所有瓷砖放入地板的唯一方法是:
AAACD
BBBCD
EF.CD
EFGGG
EFHHH
这不能通过替换来实现。
然后该怎么做?我做了很多数学工作,并且知道得很清楚。我会给你一些提示:
如果您有任何问题,请给我留言。
答案 2 :(得分:0)
不清楚要归还什么。您需要解决方案集还是仅需要最大数量? 一个简单的解决方案可能只使用1 * 2个瓷砖。显然,可能有更多的1 * 2瓷砖,然后是1 * 3瓷砖。
假设b=0
a = n * m div (1*2)
假设a=0
,m>=3
,n>=3
b = n * m div (1*3)