将网格划分为矩形

时间:2012-12-11 19:47:59

标签: algorithm

我有一个0和#的网格。 我想将所有0重新组合成矩形。所需的最小矩形数是多少?

示例:

#00#00
#00#00
0000#0
000000

#11#34
#11#34
2222#4
222254

在这个例子中,我们使用5个矩形。还有其他解决方案,但5个矩形是覆盖所有0的最小值。

1 个答案:

答案 0 :(得分:2)

问题是NP-Hard,被称为经典bin-packing problem的2D变体,称为 2D-binpacking
因此,没有已知的多项式解决方案

这是一项广泛研究,下面是一个示例article,其中介绍了解决此问题的方法。

您还可以尝试使用Genthic Algorithms或其他启发式方法来解决问题。