微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有约束的弗洛伊德·沃歇尔

如何解决有约束的弗洛伊德·沃歇尔

我想知道是否可以使用带有约束的 floyd warshall 意味着假设您有一组大小为 logn 的“特殊顶点”,并且您想计算所有最短路径,但每条路径必须至少经过一个“特殊顶点”这甚至可能还是很难np

解决方法

是的,您甚至可以将 Floyd-Warshall 算法用作黑匣子,并通过后处理步骤来实现这一点。

首先,使用 Floyd-Warshall 算法计算每对顶点之间的最短路径。然后,对于每对顶点 uv 以及每个特殊顶点 w,计算两条最短路径的总和,即从 u 到 {{1} } 和从 ww 的那个。从 vu 的受约束最短路径由特殊顶点 v 实现,该顶点使 w-u 路径的长度和{{ 1}}-w 路径的长度。

由于特殊顶点的数量显然最多为w,因此后处理步骤的计算复杂度为v。由于 Floyd-Warshall 算法的计算复杂度也是 n,因此该算法的总计算复杂度为 O(n^3)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。