[BZOJ4842]Delight for a Cat[费用流]

题意

题目链接

分析

  • 类似 最长k可重区间集 一题。

  • 由于本题区间长度相同,首先可以将点的影响看成区间,区间看成点。

  • 先默认所有位置选择事件2,选择区间看做改选事件1 。于是问题变成了求收益最大的方案使得每个点被覆盖次数满足 \(t1\le x\le k-t2\)

  • 首先所有的区间连边 \(l\rightarrow r + 1\) ,容量为1,费用为 \(s_i-e_i\) 。然后考虑上限:连边 \(S\rightarrow 1\) ,容量为上限 \(k-t2\) ,费用为0。正确性考虑如下证明:

    每次贪心地选择一个没有交集的极大区间的集合,易知跨过每个点的区间每次至少被选走一个,所以所有合法方案都可以考虑到,且不会超过上限。

  • 然后考虑下限:连边 \(i\rightarrow i+k\) ,由于要保证刚才 \(k-t2\) 的流量至少有 \(t1\) 从区间中流过,所以至多有 \(k-t2-t1\) 的流量从边 \(i\rightarrow i+k\) 中流过,故流量设置为 \(k-t2-t1\) ,费用为0。注意如果 \(i+k>n+1\) ,那么流量设置成无穷。
  • 总时间复杂度为费用流复杂度。

代码链接

转载于:https://www.cnblogs.com/yqgAKIOI/p/10268484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值