题意
给定长度为 \(N\) 的数组 \(a\) 与 \(Q\) 个区间,还有一个整数 \(M\)。
你可以将至多 \(M\) 个 \(a_i\) 个变为 \(0\),求
\[\sum_{i=1}^Q \max_{l_i \le j \le r_i} a_j \]的最小值。
\(1 \le N,Q \le 50,0 \le M \le N,1 \le a_i \le 10^9,1 \le l_i \le r_i \le N\)。
题解
看完题解后感觉只是普通的 \(\operatorname{DP}\),但为什么考试的时候想不到呢……大概跟思维方向有关吧。做的题也太少了。
考虑在最大值处算贡献:由大到小加入所有 \(a_i\),若变 \(0\),则消耗一次机会;否则将所有剩下的包含 \(i\) 的区间提出加入答案,并删掉。复杂度 \(O(nm2^q)\)。
瓶颈在 \(2^q\)。我们发现各区间的状态(\(0/1\))是有一定关系的,由此考虑用另一种方式维护。
考虑区间 \(\operatorname{DP}\),用 \(f_{l,r,m,t}\) 表示只考虑完全包含于 \([l,r]\) 的区间,剩下 \(m\) 次机会,只能拿不超过 \(t\) 的 \(a\) 值(当然可以离散化)的答案。考虑上述暴力的方式,转移很显然:一种是不拿区间最大值(设为\(mx\),位置在 \(p\)),即 \(f_{l,r,m-1,mx}\);另一种是拿区间最大值,即加上所有 \(l \le L_i \le p \le R_i \le r\) 的区间 \(i\),再枚举左右两边各放多少机会,即加上 \(\min_{i=0}^m f_{l,p-1,i,mx}+f_{p+1,r,m-i,mx}\)。答案即为 \(f_{1,n,m,INF}\)。
标签:le,题解,最大值,SOJ1669,区间,考虑,mx From: https://www.cnblogs.com/FishJokes/p/16851570.html