「eJOI2021」做题记录
加K¶
首先看查询操作,设 那么对于 \(r-l+1 < m\) ,显然有 \(f(l,r,m)=0\) 。否则拆贡献,可以看作 树状数组维护 \(B,C\) 即可。
K 划分¶
由定义,一个长度为 \(K\) 的区间可以被划分,当且仅当这一段的和 \(S\) 为偶数且可以取出一些数满足和为 \(S/2\) 。我们记 \(dp[i]\) 为最右的位置使得存在从该位置开始的一个子序列和为 \(i\) 。当我们考虑到 \(A_n\) 时,有转移: 每次更新后,我们对于当前可能的所有 \(K\) 分别判定即可。总时间复杂度是 \(O(\frac{N\sum{A_i}}{2})\) 的。