[NEERC2016] Delight for a Cat 题解
这里转载一下我博客中的一个片段,因为我发现本题的题解基本都是从线性规划的角度进行考虑的,这种方法技巧性极强,且需要一定的数学观察,不适合像我这种无脑选手,所以这里引出一种适用于这类题目的易于理解的费用流模型。
区间选择模型:
给定
[1,m] 中的n 个区间[l_i,r_i] ,每个区间选择一次的代价为w_i ,最多可以选c_i 次,要求使得任意点j 被覆盖次数在[a_j,b_j] 间,求最小/最大代价。
将
对于一个区间,我们建立从
源流向
由此,如果我们要限定一个点被覆盖次数在一个区间中,只需要设定
这里
例题
31 :[网络流 24 题] 最长k 可重区间集问题从给定的
m 个开区间中选择尽量多的区间,使得每个位置被不超过k 个区间覆盖,且区间长度和最大。
模型中的
注意由于所有
例题
32 :[NEERC 2016] Delight for a Cat在
n 小时中的每个小时,猫可以选择吃饭或睡觉,每个小时吃饭或睡觉都有一个愉悦度,但要求任意连续k 小时中至少有m_e 小时吃饭,至少m_s 小时睡觉,问最大总愉悦度。
首先做个小转化:强制每个小时都睡觉,然后可以选择一些小时改成吃饭,连续
再做个转换,将”第
模型中的
所有
例题
33 :[NOI 2008] 志愿者招募有
m 个可选操作,每个操作为将s_i 到t_i 中每个位置加1 ,代价为c_i ,每个操作可以做无限次,要求最后位置i 上的数不小于a_i ,问最小代价。
模型中的
所有