【发布时间】:2013-11-28 20:58:43
【问题描述】:
我想了解以下问题的算法: 给定一个包含 0 和 1 的矩阵以及正方形的大小,覆盖 1 的相邻正方形的最大数量是多少,它们的位置是什么?如果有几种可能的正方形组合,只需输出一个。
EX:对于 2 的大小:
输入:
0 0 1 0 0 0
0 1 1 1 1 0
0 0 1 1 1 0
0 1 1 1 1 0
0 1 1 1 1 0
0 1 1 0 0 0
可能的输出: 最多 3 个方格(每个方格标有一个字母)
0 0 1 0 0 0
0 1 一个 1 0
0 0 一个 1 0
0 b b c c 0
0 b b c c 0
0 1 1 0 0 0
我想知道是否存在用于最优解的多项式(或伪多项式)算法。如果是,算法及其渐近复杂度是多少?如果不是,我应该使用什么近似算法?
此外,您可以假设,如果这使问题变得更容易,则在 1 的区域内没有 0 的“孤岛”,因此不应遇到以下情况:
1 1 1
1 0 1
1 1 1
我是一名业余程序员,这是我在这里的第一个问题。如果您的回答还建议该算法的研究领域,那对我来说将非常有用。提前致谢。
【问题讨论】:
-
正方形的大小也给定了吗?正方形可以重叠吗?
-
方格长度预先给定,方格不能重叠。