【发布时间】:2019-07-01 09:20:03
【问题描述】:
这个问题可以描述如下;
给定一个矩形,宽度和高度可以是随机的大数;并给定一些较小的矩形或正方形,表示基本元素,例如6*6, 8*4, 4*4, 6*4, 4*4, 2*2, 1*1;是否有一些算法可以有效地覆盖给定的矩形?有两个约束,
- 最好使用相同的基本元素;
- 首先覆盖较大的基本元素。
例如,给一个8*8正方形;可以分为一个6*6,然后是七个2*2;另一个选项是四个4*4;另一个选项是两个8*4;另一个选项是八个1*1;还有一些其他的选择可以得到8*8 方块。使用给定的两个约束,将选择两个8*4 作为最佳结果。
有什么好的算法可以解决这个问题吗?
【问题讨论】:
-
这让我想起了一些在 Hackerrank 上提供的练习。您是否已经尝试搜索镶嵌或平铺?我想这是相关数学学科的英文术语。
-
您的限制条件不清楚。考虑一个
6*10正方形。你可以用6*6然后6*4来做。您也可以使用 152*2。哪个更好,只使用 2 个块,还是只使用一种块中的许多块? -
感谢 cmets,是的,约束不精确;这是一个现实世界的问题,我需要更多的约束来解决这个问题,我尝试了动态规划,搜索空间仍然很大。
标签: algorithm