最小面积矩阵覆盖

时间:2011-11-07 07:55:32

标签: algorithm matrix

考虑到n乘n二进制矩阵,我想找到两个矩形的最小区域,它将覆盖所有的(1s)。也就是说,矩形区域的总和必须是最小的。 矩形可以重叠。

示例:

0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0

最小区域为:3 * 9 + 9 * 3 = 54

我有兴趣知道是否有比O(n^4)更好的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以先找到矩阵中最上面,最下面,最右边和最左边的1来解决一个矩形的问题。然后你知道你可以通过使用第二个矩形来改善你的结果,当且仅当你能够切出所有0的对称块时。