给定带有n个顶点的加权有向图,其中边权重为整数(正,零或负),确定是否存在任意大权重的路径可以及时执行 -
O(n)的
O(n.log(n))但不是O(n)
O(n ^ 1.5)但不是O(nlogn)
O(n ^ 3)但不是O(n ^ 1.5)
O(2n)但不是O(n ^ 3)
我不明白使用什么算法,因为找到最长的路径是NP Hard问题。但是,给出的答案是O(n ^ 3)
答案 0 :(得分:1)
简而言之,你必须否定权重,然后运行Floyd-Warshall算法。需要O(n ^ 3)。
如上所述here,
图表必须是非循环的,否则路径可以有 任意大的重量。我们可以通过否定所有这些来找到最长的路径 边权重,然后使用最短路径算法。不幸的是,Dijk 如果允许边具有负权重,则stra的算法不起作用。 然而,Floyd-Warshall算法确实有效,只要没有 负重量循环,所以它可以用来找到最长的重量路径 非循环图。