一、题目
二、解法
考虑网络流,图这样建:
总结一下建图方法:
- S ′ S' S′向 S S S连边,容量为 R R R,边权为 0 0 0(注意,这一部分在图上没有画出来)
- 源点连接 [ 1 , k ] [1,k] [1,k]中的每个点,容量为 R R R,边权为 0 0 0。
- 点 i i i连点 i + 1 i+1 i+1(没有连 T T T),容量为 R − L R-L R−L,边权为 0 0 0。
- 点 i i i连点 i + k i+k i+k(没有连 T T T),容量为 R − L R-L R−L,边权为 c [ i ] c[i] c[i]
然后我们在建好的图上跑最小费用最大流,解释一下这样做的正确性。我们可以发现最大流一定是满流 R R R,相邻的边容量只有 R − L R-L R−L,剩下的 L L L或更多都要通过玩游戏来解决,我们在把这个分流流向 i + k i+k i+k处,继续处理,故该算法正确。
咕咕咕