【发布时间】:2013-10-09 06:17:08
【问题描述】:
我在一个网站上看到了这个编程难题,并试图解决它。
问题
给你一个 N x N 网格,其中有一些随机分布的点。你必须使用以下允许的操作删除这些点
您可以一次删除一行中的所有点
或者您可以一次删除一列中的所有点。
您必须找到消除所有点所需的最少拍摄次数。
例子
在下面的网格中,您需要三张照片 - 一张水平照片和两张垂直照片来去除点。
我尝试了一种方法来计算带有点的行和列,并且以最小值为准。但在特定情况下它会失败,例如上面的示例。 有什么方法可以解决这个问题,或者有什么类似的情况可以参考解决这个问题?
编辑
给定的约束是
1 <= N <= 1000
0 <= x,y <= 10^9
Time Limit: 2 sec
其中 n 是网格的维度(即 nxn),x,y 是坐标
【问题讨论】:
-
我想,每列投掷每一个镜头是我能得到的最佳解决方案。在最坏的情况下,它是 O(N),对于任何其他解决方案,最坏的情况是所有点都对角排列或完整的矩阵被点填充
-
@Reddy :但是如果你为每一列投一枪,那么对于上面给出的例子,它会给出错误的答案为 6。虽然正确的答案是 3
-
@Insane Coder,抱歉我错过了问题
-
运行 CodeChef 挑战 "Kamehameha" 的完全相同的副本。
标签: java algorithm graph-algorithm