SOJ1669 题解

题意

传送门

给定长度为 \(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}\)

posted @ 2022-11-02 16:50  realFish  阅读(43)  评论(0)    收藏  举报