CF1372E Omkar and Last Floor
考察式子里的平方,我们能感受到让选的位置尽可能集中是好的。我们称一列选择的位置数量为密度。
进一步的,我们观察样例发现左右端都是满的。我们考虑分析一点严谨有用的性质。我们假装其它区间都已经确定,只剩下一个区间,那么选择的位置一定是在密度最大的那一列。
于是我们可以证明最优解中一定存在一列选满。证明考虑反证,若不存在选满的列,如果存在一列满足只有一个位置没选,那么我们一定可以找到包含这个位置的区间,把选择位置调整到这里一定不劣。而如果找不到就可以继续去归纳证明。
于是结合数据范围,我们考虑枚举选满的那一列,我们发现我们把序列劈成了两半,于是我们考虑区间 dp,设 \(f(l,r)\) 表示只考虑完全包含在 \([l,r]\) 内的区间的答案最大值。转移就是枚举 \(i\in[l,r]\) 钦定全选,设有 \(c\) 个区间包含 \(i\),那么 \(f(l,r)\leftarrow f(l,i-1)+f(i+1,r)+c\)。
直接暴力是 \(\mathcal{O}(n^5)\) 的。我们根据 \(i\) 往后移动的单调性,可以对于每一行用指针维护当前区间位置,做到 \(\mathcal{O}(n^4)\)。代码。

浙公网安备 33010602011771号