题解:P15619 [ICPC 2022 Jakarta R] City Hall

· · 题解

不想写代码系列,这场题目有点一言难尽。

跑两遍 dij 求出 f_u,g_u 表示到起点和终点的距离。

特判改了起点及改了终点及不改的情况,这些严格简单于下面部分。

设改的点路径上的前驱后继为 u,v,则代价为 \frac{(H_u-H_v)^2}{4}+f_u+f_v

枚举改的点及其邻居,将上面的式子拆成一次函数,斜率优化即可。

时间复杂度 O(m\log m)