algorithm - 具有多个源顶点的边加权 DAG 中的最短路径?
问题描述
给定一个算法 A,它计算从具有非负边权重的 DAG G 中的源顶点 s 开始的最长路径。运行算法 A 以在 DAG G 中找到最长路径所需的最少次数是多少?
一种方法是找出多个源顶点,这可以在 O(|Edges|) 中实现。然后以这些顶点中的每一个作为源顶点运行算法 A。这将需要运行算法 A NumberOfSourceVertices 次。
我们能做得更好吗?
解决方案
是的,我们可以做得更好。将新节点添加z
到G
. 对于每个已识别的源顶点s
,将一条边(z, s, 0)
(零边权重)添加到 G。
在修改后运行A
一次G
。
推荐阅读
- mysql - 重置 MySQL 密码 - Mac
- docker - docker-compose,我如何检查容器是否正在运行最后一个图像?并重新启动它
- ruby-on-rails - 按属性搜索时重定向到模型对象的“显示”视图(非 ID)
- ruby-on-rails - 如何从我的 rspec 测试中访问“请求”和“会话”对象?
- javascript - ReactJS,试图从 JIRA 的 REST API 获取 JSON 数据,但无法这样做。
- c# - 无法从 Paypal IPN 获取 Context.Request 参数
- java - 通过 xpath 获取特定类的最后添加元素到 DOM
- python - 在 Multiindex pandas DataFrame 中追加到级别
- bash - 在bash中批量更改多个文件名并保存输出
- powershell - 无法按部门属性搜索