一、对区间中数的个数的限制
1.
bzoj 1283
给出一个长度为n的正整数序列Ci,求一个子序列,使得原序列中任意长度为m的子串中被选出的元素不超过k 个,并且选出的元素之和最大。
n<=1000,k,m<=100,Ci<=20000。
分析
把数列串成一串,从 i i i 连向 i + m i+m i+m,费用 C i C_{i} Ci,流量 1 1 1。 s s s连 1 1 1,流量 k k k即可。也即选择一个数之后,其后 k k k个之后便无影响。
2.
loj 6079 山东集训 养猫
限制改为连续 m m m个不超过 k 1 k1 k1个,不少于 k 2 k2 k2个
分析
由于穿过每个截面的流量相同,要求上方有至少 k 2 k2 k2个就是要求下方至多 k 1 − k 2 k1-k2 <