做题记录 25.2.20
\(\textcolor{green}\odot\) P8289 [省选联考 2022] 预处理器
直接模拟即可
\(\textcolor{purple}\odot\) P8290 [省选联考 2022] 填树
令 \(sol(L,R)\) 表示边权强制在 \([L,R]\) 范围内时的数量和权值和(其为二元组)
令 \(mr=\max_{i=1}^n r_i\)
则根据容斥原理,答案为 \(\sum_{i=1}^{mr}sol(i,i+k)-sol(i+1,i+k)\)
每个 \(sol(L,R)\) 都可树形 \(dp\) 求出,单次 \(O(n)\),从而得到 \(O(n\max r_i)\) 的解法
令 \(f(x)=sol(x,x+k)-sol(x+1,x+k)\)
则从 \(x=l_i\),\(x=r_i+1\),\(x=l_i-k\),\(x=r_i-k+1\) 处将 \([1,mr]\) 裂为 \(O(n)\) 段后,可证每段 \(f(x)\) 都是多项式
对于每一段,暴力求出前缀和的前 \(O(n)\) 项,然后使用拉格朗日插值求出前缀和的最后一项,即总和
时间复杂度为 \(O(n^3)\)
存在 \(O(n^2\log n)\) 的做法

浙公网安备 33010602011771号