algorithm - 移除直连分量后的最小元素数
问题描述
假设我有一个由邻接矩阵表示的无向:
[[0, 1, 0, 0],
[1, 0, 0, 1],
[0, 0, 0, 1],
[0, 1, 1, 0]]
a[i][j] = 1
如果节点i
和j
已连接。一项操作包括从图中删除任何两个直接连接的组件。例如,在上图中,您可以删除节点 0 和 1。在任意数量的操作之后剩余的最小节点数是多少?
显然,我们可以O(N^2 * 2^N)
通过暴力破解组件的每一个组合来做到这一点。我在想有一种贪婪的方法可以在O(N)
or中解决这个问题O(N^2)
。
编辑:
如果 ,则两个节点直接相连A[i][j] = 1
。这不是传递的,因此如果(i, j)
直接连接并且(j, k)
直接连接,(i, k)
则不一定直接连接。
解决方案
推荐阅读
- javascript - 第一个模块和“意外的令牌 {”
- angular6 - 导航到其他页面时,继续显示导航选项卡
- c# - 是否可以索引和切片 ReadOnlySpan
使用 Unicode 文本元素? - python - 当一切都合法接受 csv 文件时,为什么我会收到语法错误?
- python - matplotlib 中的直方图未正确分箱
- c++ - C++ 类成员是空指针
- maven - 是否可以在 Maven 中使用不同的存储库进行解析和部署?
- apache-spark - 结构化流式提取每个 id 的最新值
- momentjs - 使用 Moment js 生成具有动态 VTIMEZONE 的 ics
- kubernetes - kubernetes 如何决定为 IPAM 调用哪个网络插件?