2.15
Complete The Graph
-
枚举:每次将为零的边加上
1 ,可以证明总有一个时刻最短路为L 。显然有单调性,二分即可。 -
两边 Dijkstra:先把全部零边设成
1 ,然后跑一边最短路,设D = L- f(t) 。D < 0 时显然无解。然后跑第二遍最短路,在跑的过程中,如果对于边(u, v) 如果有g(u) + w \lt f(v) + D ,就让w \gets f(y) + D - g(x) 。
上述方法实际上将所有
P2149 [SDOI2009] Elaxia的路线
对每一个源点和终点跑一遍最短路,然后建出一个由