CF802C Heidi and Library (hard)

链接

Heidi and Library

题解

好题。这个题其实和最长 k k k可重区间集很类似,一个关键问题是怎么处理书架的容量,处理方式和区间集很类似,都是采用只增广至多 k k k次,每次增广单位流量来达到目的。处理好这个事情费用流的建模其实不难。为了使需求都被解决,把需求拆成两个点, i → i + n i \to i+n ii+n连费用为 − I N F -INF INF的边,使得其必选。每次增广解决一些需求,解决一个需求不是买书就是用前面的书,因此首先源点向每个点的入点连边,费用为买书的费用,其次每一个点的出点向后面点的入点连边,费用取决于两次需求的书是否相同。最后每个点的出点向汇点连边,费用为 0 0 0,表示一次增广可以在此结束(也就是把问题解决到这)。还有需要注意的是此处仅需要最小费用,没有最大流的事情,因此当 s p f a spfa spfa运行到 d i s t [ s t ] > 0 dist[st]>0 dist[st]>0时就要停止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值