algorithm - 在有向图中,为什么使用完成时间而不是发现时间来确定强连通分量?
问题描述
在为有向图寻找强连通分量时,我们使用反向图中的完成时间作为顺序。为什么我们不能按降序使用发现时间?对我来说,它们看起来非常相似,都可以使用。然而,在我发现的所有逻辑中,他们只使用完成时间。
是否有任何示例表明它无法使用发现时间?
解决方案
根据维基百科,关键不变量是“如果存在从 u 到 v 的正向路径,那么 u 将出现在 v 之前”。这表明我们寻找一个发现时间违反这一点的图表。例如,在图中
_________
/ _\|
a---->b---->c
a
那时我们可能c
会访问b
,即使有一条从b
到的路径c
。然后我们遍历转置图并找到“强连通分量” {a}
,然后{c, b}
因为从c
到有一条弧b
。
推荐阅读
- sql - 不能在数组列中使用 Where 条件
- node.js - 如何正确实施错误以检查设置的环境变量
- swift - 如果需要异步结果,请快速等待
- android - 保护 android 应用程序中的知识产权(图像、声音和其他媒体等资源)不被复制
- android - Android Studio:如何以编程方式将 Drawable 设置为 buttonTextColor?
- android-studio - 如何为 .setLayoutManager 设置上下文?
- reactjs - 由于 Lambda 会影响渲染性能,因此在 JSX 属性中禁止使用 Lambda
- sql - 如何从 sql server 中的表中检索以逗号分隔的列形式的单个值?
- sql - 访问:选择下拉列表中的值时执行代码
- php - 我想从自动完成地址表单中获取纬度和经度