最短路
CF843D Dynamic Shortest Path
非常巧妙,增加了 \(k\) 条边的权值以后,答案的增加不会超过 \(k\)。首先先跑一个 \(dijkstra\) 来得到 \(dis\) 数组。
然后对于每一个增加的答案开一个queue
来存,\(add_v = min(dis_u + add_u + e(u, v) - dis_v)\)。
对于每一个增加的数遍历一遍即可。
CF1450E Capitalism
把 \(|a_i - a_j| \le 1\) 这个条件拆开,然后跑 \(Folyd\) 最短路,找全局最大值。如果有奇环,就是无解。