传送门 建图巧妙啊。 对于每个点的出边,我们将它们排序之后依次连边。 这样可以把 O ( m 2 ) O(m^2) O(m2)的边数变成 O ( m ) O(m) O(m)的了。 连的权值就是 m a x ( e d g e max(edge max(edge_ d e l t a , 0 ) delta,0) delta,0) 然后用边代替点跑 d i j k s t r a dijkstra dijkstra就行了。 代码