做题记录 26.1.28
\(\textcolor{black}\odot\) P5313 [Ynoi2011] WBLT
对于 \(b\) 较大时,考虑先用莫队求出区间内值的 bitset \(X\),一个长度为 \(b\) 的 bitset 初始都是 \(1\),每次从 \(X\) 中取出下一个长度为 \(b\) 的区间按位与到该 bitset 上,若某次操作后全为 \(0\) 则操作次数即为答案
令阈值为 \(S\),则这部分时间复杂度 \(O(n\sqrt m+m(\frac V\omega+\frac VS))\)
对于 \(b<\omega\) 的情况,将询问挂到每个 \(b\) 上,分别进行一次莫队,对于每个 \(\bmod b\) 等价类维护 \(a+kb\) 中 \(k\) 的 bitset,查询时答案为 \(b\) 个 bitset 的 \(\text{mex}\) 的最大值,这部分时间复杂度 \(O(\sum_{i=1}^S(n \sqrt{m_i}+m_iS+\frac{m_iV}\omega))\),其中 \(m_i\) 表示 \(b=i\) 的查询数量
总时间复杂度 \(O(n\sqrt m+m(\frac V\omega+\frac VS)+\sum_{i=1}^S(n \sqrt{m_i}+m_iS+\frac{m_iV}\omega))=O(\frac{mV}\omega+\frac{mV}S+mS+n\sqrt{mS})\),取 \(S=\sqrt[3]{\frac{mV^2}{n^2}}\) 可以做到 \(O\left(\frac{mV}\omega+\sqrt[3]{n^2m^2V}+\sqrt[3]{\frac{m^4V^2}{n^2}}\right)\)
\(\textcolor{purple}\odot\) P13360 [GDCPC 2024] 另一个计数问题
每个 \(\ge \lfloor\frac n2\rfloor+1\) 的质数单独为一个连通块,其余数字为一个连通块,令 \(\mathbb P\) 为质数集,令 \(S=\{1\le i\le n\mid i\le \lfloor\frac n2\rfloor\lor i\notin P\}\),则答案为
而 \(S=[1,n]-(P\cap[1,n])+(P\cap[1,\lfloor\frac n2\rfloor])\),转化为求 \(\sum_{i\in P,i\le n}i\),\(\sum_{i\in P,i\le n}i^2\),\(\sum_{i\in P,i\le \lfloor\frac n2\rfloor}i\),\(\sum_{i\in P,i\le \lfloor\frac n2\rfloor}i^2\),可以用 \(\text{min\_25}\) 筛做到 \(O\left(\frac{n^{\frac34}}{\log n}\right)\)
注意需要精细实现使得只进行一次筛
\(\textcolor{purple}\odot\) P12922 [POI 2021/2022 R3] 流星 / Meteory
考虑二分答案,转化为初始一个点,每次所有线段长度扩张,并移除一段区间,判断最终是否为空集
用 \(\text{ODT}\),每段维护最后跟新时间,移除区间时找出所有与之有交的,并向左右两侧跟新尝试合并
时间复杂度 \(O(n\log n\log V)\)
注意精度问题

浙公网安备 33010602011771号