[CF786B]Legacy
Legacy
题解
看到题目应该是容易想到最短路的,但是由于区间到单点与单点到区间的边我们需要想些办法来维护。
于是,我们就想到了通过虚点来进行维护。但总不能每个区间都建一个点,只能利用线段树来对各个区间的虚点进行维护。
针对一个区间需要建两个点,一个入点,一个出点。将大区间与小区间连上边,出边从下往上,入边从上往下,其边权都是0。
由于大小区间内已经连了边,再加上最短路的性质,懒标记什么的就没必要了。最后建完边后再去跑一边Dijkstra即可,注意需要加堆优化。
由于,边数
应该不超过
,总时间复杂度
,能卡过去。
源码
#inc

浙公网安备 33010602011771号