做题记录 25.10.24
\(\textcolor{blue}\odot\) P11261 [COTS 2018] 直方图 Histogram
建立笛卡尔树,依次考虑每个点的贡献
对于点 \(u\),设其左右子树大小分别为 \(l,r\),假定 \(l\le r\),则贡献为 \(\sum_{i=0}^l \sum_{t=i}^{i+r}\max(0,h_u-\lceil\frac p{t+1}\rceil+1)\),容易通过前缀和优化做到 \(O(l)\),显然总复杂度 \(O(n\log n)\)
\(\textcolor{blue}\odot\) P14188 [ICPC 2024 Hangzhou R] Barkley III
线段树维护,每个结点保存区间 \(\text{and}\) 和,区间 \(\text{and}\) 标记,区间内恰好有一个 \(0\) 的位的集合
查询时,若区间内不存在恰好一个 \(0\) 的位则答案为区间 \(\text{and}\) 和,否则取其最高位,线段树上二分找到那一位为 \(0\) 的位置,求左右两部分的 \(\text{and}\) 和
时间复杂度 \(O(n+q\log n)\)

浙公网安备 33010602011771号