做题记录 25.4.20
\(\textcolor{blue}\odot\) CF2084E Blossom
拆贡献,\(\text{mex}(S)=\sum_{k=0}^{n-1}[\{0,1,\cdots,k\}\subseteq S]\)
因此对于确定的数组 \(a\),答案为
对于 \(l,r,k\),考虑如何计算 \(0\sim k\) 都在 \(a[i:j]\) 中的 \(a\) 的数量
令 \(c_1\) 为 \([i,j]\) 内 \(-1\) 的数量,\(c_2\) 为 \(0\sim k\) 中未确定的数量,\(c_3\) 为 \(-1\) 总数量,\([l_k,r_k]\) 为包含了 \(0\sim k\) 中确定的值的极小区间,三者容易 \(O(n^2)\) 内预处理
则这组 \((l,r,k)\) 的贡献为 \([i\le l_k][r_k\le j]\binom{c_1}{c_2}c_2!(c_3-c_2)!\)
这样时间复杂度为 \(O(n^3)\)
考虑枚举 \(k\) 和 \(c_1\),这样 \(c_1,c_2,c_3\) 都确定,从而 \(\binom{c_1}{c_2}c_2!(c_3-c_2)!\) 确定
问题转化为在 \(O(n^2)\) 内对于每个 \((k,c_1)\) 求出满足 \(i\le l_k,r_k\le j\) 且恰好含有 \(c_1\) 个 \(-1\) 的区间数量,设数量为 \(ct_{k,c_1}\)
枚举区间 \([i,j]\),设 \(k\) 为不满足 \(i\le l_k,r_k\le j\) 的 \(k\) 的最小值(不存在则为 \(n\)),则令 \(ct_{0\sim k-1,\sum_{x=i}^j [a_x=-1]}\) 都加一
随着区间扩大,显然 \(k\) 单调,区间加可差分实现,因此预处理 \(ct\) 的时间复杂度为 \(O(n^2)\) 的
总时间复杂度 \(O(\sum n^2)\)

浙公网安备 33010602011771号