假设给出加权图G(V,E)。缺少给定边的最短路径
该图包含Ñ顶点(编号从0到N-1)和中号边缘双向。
每个边缘(六,VJ)具有阳性距离d(即,在两个顶点vivj之间的距离是d)
有任意两个顶点之间atmost一个边缘,并且还存在没有自我循环(ie.no边缘顶点连接到 本身。)
此外,我们给出小号源顶点和d目标顶点。
let Q是查询的数量,每个查询包含一个边沿e(x,y)。假设边缘(x,y)在原始图中不存在,我们必须找到从源S到目的地D的最短路径。 如果没有从S到d存在任何路径,则我们有打印号
约束是高0 < =(N,Q,M)< = 25000
如何解决这个问题有效?
直到现在我所做的是实现了简单的Dijakstra算法。
对于每个查询Q,每次我很分配(X,Y),以无限 和发现Dijakstra最短路径。
但这种方法会很缓慢,因为整体的复杂性将是Q(时间Dijastra Shortes路径的复杂性)*
例::
N=6,M=9
S=0 ,D=5
(u,v,cost(u,v))
0 2 4
3 5 8
3 4 1
2 3 1
0 1 1
4 5 1
2 4 5
1 2 1
1 3 3
Total Queries =6
Query edge=(0,1) Answer=7
Query edge=(0,2) Answer=5
Query edge=(1,3) Answer=5
Query edge=(2,3) Answer=6
Query edge=(4,5) Answer=11
Query edge=(3,4) Answer=8
你能解释一下如何能够很容易地计算最小切割问题吗? – anukul