【未完工题解】P6880 [JOI 2020 Final] 奥运公交 / Olympic Bus
【P6880】题解
一:【题意】
有向带权图,第 \(𝑖\) 条边权值为 \(C_i\) ,可以花 \(𝐷_i\) 代价翻转。
翻转 \(0\) 或 \(1\) 条边,从 \(1\) 到 \(n\) 再回到 \(1\) 的权值和最小是多少。
二:【解法】
先只考虑 \(1->n\) 的路径,然后 \(n->1\) 同理
建 \(1\) 和 \(n\) 的最短路树,搜出最短路径 \(st\)
记 \(T1(x)\) 为 \(1\) 到 \(x\) 的最短路径长度, \(Tn(x)\) 为 \(x\) 到 \(n\) 的最短路径长度
如果改变的边不在 \(st\) 上,则最短路为 \(min(T1(n),T1(u)+w+Tn(v))\)
如果在 \(st\) 上,我们不知道是否存在长度 \(==T1(n)\) 的路径,所以不能取 \(min\) ,可以直接 \(Dijkstra\) 跑一遍
三:【代码】
(施工中)

浙公网安备 33010602011771号