algorithm - 检查一个简单的无向图是否是三连接的
问题描述
问题
给定一个简单的无向图 G = (V, E),其中 |V| = n = 节点数和 |E| = m = 边数,检查 G 是否是三连通的。也就是说,在随机移除任意两条边之后,G 是否保持连接(从每个节点到所有其他节点都存在一条路径)。所需时间复杂度:O(n^2(n + m))
我的解决方案
对于 G 中的每个节点,请执行以下操作:
检查节点是否至少有 3 条边到 3 个不同的节点:O(1)。
忽略节点并在剩余的图上运行深度优先搜索以检查它是否仍然连接:O(n + m)
时间复杂度:O(n(n + m)) = O(n^2(n + m))。
我的解决方案正确吗?
解决方案
不,考虑具有顶点X
和的图*
。
* *
/|\ /|\
*-+-X-+-*
\|/ \|/
* *
该图是 3 边连接的,但如果您删除X
,它会断开连接。
推荐阅读
- android - 如果在后台订阅,为什么 retryWhen 会隐藏处理程序的错误?
- jenkins - 在詹金斯管道中,对于失败的作业,电子邮件应指示管道失败并链接到作业失败的阶段?
- c# - 在 DataGrid 的 DataTemplate 中使用时,CustomControl DependencyProperty 不绑定
- javascript - 构建一个接受字符并在字符为 , 时返回 true 的函数表达式。!; 否则返回 false
- python - python中的其他条件
- go - 调用 EnumProcessModules 时出现“意外故障地址”
- node.js - JSON.parse 在位置 129 处给出“JSON 中的意外令牌 \u000f”
- windows - 无法连接到 windows netcat 监听器
- jquery - 引导模式的位置问题及其在关闭单击时被解雇
- android - HorizontalRecyclerView 中的 VideoView 在滑动时显示墙纸