做题记录 25.4.20

\(\textcolor{blue}\odot\) CF2084E Blossom

拆贡献,\(\text{mex}(S)=\sum_{k=0}^{n-1}[\{0,1,\cdots,k\}\subseteq S]\)

因此对于确定的数组 \(a\),答案为

\[\sum_{1\le i\le j\le n}\sum_{k=0}^{n-1}[\{0,1,\cdots,k\}\subseteq \{a_x\}_{x=i}^j] \]

对于 \(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)\)

代码

参考

posted @ 2025-04-21 18:27  Hstry  阅读(3)  评论(0)    收藏  举报