1 条题解
-
0
自动搬运
来自洛谷,原作者为

ix35
垒球搬运于
2025-08-24 22:25:32,当前版本为作者最后更新于2021-06-16 16:07:22,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这里转载一下我博客中的一个片段,因为我发现本题的题解基本都是从线性规划的角度进行考虑的,这种方法技巧性极强,且需要一定的数学观察,不适合像我这种无脑选手,所以这里引出一种适用于这类题目的易于理解的费用流模型。
区间选择模型:
给定 中的 个区间 ,每个区间选择一次的代价为 ,最多可以选 次,要求使得任意点 被覆盖次数在 间,求最小/最大代价。
将 到 连成一条链,尝试用 边的流量刻画 被覆盖的次数。
对于一个区间,我们建立从 到 的一条边,称为区间边,如果区间边上流过一条流,就表示选择一次这个区间。
源流向 , 流向汇,首先设确定总流量为 ,那么没有流经 这条边的流量就是选择了跨过 的区间,所以 的流量为 就表示 被覆盖了 次。
由此,如果我们要限定一个点被覆盖次数在一个区间中,只需要设定 的流量上下界为 ,然后将区间边费用设为区间代价,容量设为可选次数,最小/最大费用上下界最大流即为答案。
这里 可以选取任意一个充分大的数(不小于最大的 )。
例题 :[网络流 24 题] 最长 可重区间集问题
从给定的 个开区间中选择尽量多的区间,使得每个位置被不超过 个区间覆盖,且区间长度和最大。
模型中的 ,套用即可。
注意由于所有 相等,所以令 ,就没有下界了,可以普通费用流。
例题 :[NEERC 2016] Delight for a Cat
在 小时中的每个小时,猫可以选择吃饭或睡觉,每个小时吃饭或睡觉都有一个愉悦度,但要求任意连续 小时中至少有 小时吃饭,至少 小时睡觉,问最大总愉悦度。
首先做个小转化:强制每个小时都睡觉,然后可以选择一些小时改成吃饭,连续 个小时中吃饭的数量要在 之中。
再做个转换,将”第 小时改吃饭“看成一个区间 ,那么上面的条件就等价于对于所有 的点有 被这些区间覆盖的次数在 之中。
模型中的 (对于 的 边),套用即可。
所有 相等,所以令 ,就没有下界了。
例题 :[NOI 2008] 志愿者招募
有 个可选操作,每个操作为将 到 中每个位置加 ,代价为 ,每个操作可以做无限次,要求最后位置 上的数不小于 ,问最小代价。
模型中的 是题中的 ,模型中的 ,套用即可。
所有 相等,所以令 ,就没有下界了。
- 1
信息
- ID
- 6126
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者