社区讨论

有没有时间复杂度为 O (VE) 的做法?

B3611【模板】传递闭包参与者 8已保存回复 11

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@mj8myzxi
此快照首次捕获于
2025/12/16 21:46
2 个月前
此快照最后确认于
2025/12/19 22:20
2 个月前
查看原帖
《算法导论》中传递闭包部分有一道习题 :

要求设计一个时间复杂度为 O(VE)O(VE) 的算法解决传递闭包问题。

我想了两天没想出来。
想法一 :
在给出的图上进行一次DFS,然后又在其转置图上再进行一次DFS。但是这样可能会出现搜索不全的问题。
想法二:
使用 Bellman-Ford 算法,每次松弛时进行一次位与操作。但时间复杂度为O(V2E)O(V²E) ,在稠密图中可达到O(V4)O(V⁴)
有没有大佬可以设计出时间复杂度O(VE)O(VE)的算法?
(设计出了必关!!!)

回复

11 条回复,欢迎继续交流。

正在加载回复...