有
n
道题,第
i
天可以花费
ai
准备一道题,花费
bi
打印一道题,每天最多准备一道题,打印一道题,准备的题可以留到以后打印,求打印
k
道题的最小花费.
1≤k≤n≤5×105
题解
显然可以费用流解决
费用流建图
考虑优化费用流
[object Promise]
根据引理得,每次增广的增广路都是一条形如
S→X→Y→T′→T
的路径,一共增广
k
次
设
fi
表示在残流网络上
i+1
点向
i
的流量,则一条增广路合法当且仅当
S→X,Y→T′
这两条边有流量且满足下列两个条件之一:
X≤Y
X>Y∧minY≤i<Xfi>0
尝试用线段树来模拟这一过程,对于每一个区间
[l,r],维护
a
的最小值
minA,b
的最小值
minB,从
x
到
l
有流量的最小
axflowA,从
r+1
到
x
有流量的最小
bxflowB,从左到右的最小费用流
flowLtoR,从右到左的最小费用流
flowRtoL,从
r+1
到
l
的流量
minFlow