【发布时间】:2016-04-13 01:50:34
【问题描述】:
我正在尝试通过此链接解决一个问题:
(这不是作业题)
考虑一个有n个顶点和e条边的加权有向图G,权重是整数。假设 G 不包含负循环,并且对于 G 中的每一对顶点 u 和 v,对于某个正整数 d,从 u 到 v 的距离都在 [-2d, 2d] 范围内。我们将修复 G 中的特定边 (x,y),并考虑当我们更改与该边相关的权重时 G 中的距离会发生什么变化(并保持所有其他边权重不变)。
设计一个以 G 作为输入的算法,以及 G 中的指定边 (x,y)。算法的输出应该是这个边的权重 (x,y) 可以的整数范围使 G 中的所有距离保持不变。请注意,此范围将是非空的,因为它必须包括边缘的原始权重 (x,y)。另请注意,无穷大可能会作为范围的端点出现(即范围可能不是有限的)。为此,您可以返回“∞”作为端点。您的算法的运行时间必须是 n、e 和 d 中的多项式(因此您的运行时间不应有任何这些参数显示为指数)。证明为什么算法是正确的。
我一直在考虑以下几点: 由于距离在一个范围内,因此权重也应该在一个范围内。一种选择是我们多次运行 Djkstra。我们如何优化它?
【问题讨论】: