当前位置: 首页 > 面试题库 >

所需的最低限度攻击次数

钮高朗
2023-03-14
问题内容

我们获得了二维网格单元,每个单元可能包含也可能不包含怪物。

我们将获得包含怪物的单元格列表。

在一次攻击中,我们可以杀死排成一列或一列的所有怪物。我们需要告诉消灭所有怪物所需的最小攻击次数。

限制条件:

1 ≤ N ≤ 1000

1 ≤ X, Y ≤ 10^9

例:

输入:

3

0 0

1 0

0 1

输出:

2

如何解决这个问题。


问题答案:

可以将其建模为图问题。

为每个有怪物的行和列创建一个图形节点。如果该行和该列上有怪物,则连接节点。

这是一个二部图,您想要做最小的顶点覆盖。柯尼希定理表明,对于二部图,该问题与最大匹配问题是等价的,可以在政治时间内解决该问题:

http://en.wikipedia.org/wiki/Maximum_matching#Maximum_matchings_in_bipartite_graphs



 类似资料:
  • 我在用BigDecimal做一些计算。最近我遇到: 这个问题的答案贴在这里:算术异常:“非终止十进制扩展;没有精确可表示的十进制结果” 这意味着,有一些除法有无限的小数,所以BigDecimal告诉我它不能精确计算结果。为了避免这种情况,我必须调用

  • 我在尝试使用pandas软件包时遇到了这个问题。我已经使用命令安装了numpy 1.9.0和dateutil 2.5.0。我仍然看到这个错误。 是否有其他方法安装dateutil?而这只与熊猫包有关 回溯(最后一次调用):从pandas.compat.numpy import*文件“/Users/xyz/Library/Python/2.7/lib/Python/site packages/pan

  • 试图在android Studio中找到构建一个android项目所需的最小源代码和构建文件。我想发布到github,避免上传生成的构建文件或二进制文件。 我确实有一个Android.Gitignore从,但我仍然看到更多的文件被推入回购,这可能是不必要的。我明白几个明显的,但关于其他,我是否需要他们,如果是这样,善意地解释用法。 所以问题是,我需要以下内容吗?如果需要的话,我需要一个简短的描述,

  • 问题内容: 是否有类似于Pylint的东西,它们将查看(或运行)Python脚本,并确定每行(或函数)所需的Python版本? 例如,理论用法: 这样的事情可能吗?我想最简单的方法是将所有Python版本都放到光盘上,并运行每个版本的脚本并查看发生了什么错误。 问题答案: Greg Hewgill的pyqver工具已经有一段时间没有更新了。 vermin是一个类似的实用程序,它以详细模式()显示决

  • 如果我运行的应用程序需要Google Play服务(例如,使用Mobile Vision API/Firebase等的应用程序), 我如何知道设备上运行应用程序所需的Google Play服务的最低版本? 谷歌官方网站只推荐更新谷歌播放服务的设备(事实上,这是在安装了谷歌播放的设备上自动完成的) 这是因为我想在完全离线的设备上使用该应用程序,而该设备不会安装最新的Google Play服务。 提示

  • 我正在使用spring boot 1.4.x开发一个web服务,并在支持Java 6的WebSphere8.5中部署它。但是当我部署war时,我得到了以下错误。 看起来像是spring boot的jar依赖项(spring-ws-core-2.3.1.release.jar)中有一个用Java 7编译的类,这导致了下面的错误。 使用spring boot 1.4.x所需的最低Java版本是什么?在