P6638 「JYLOI Round 1」常规

发布时间 2023-08-21 11:58:58作者: yh2021shx

容易把问题转换为求前缀和。设 \(p\) 为当前最大的下标使得 \(a_p \leq x\),则容易得到答案:

\[\text{ans} = \sum_{i = 1}^{p}\left\lfloor\dfrac{x - a_p}{k}\right\rfloor \]

比较难直接维护,所以稍微化简一下:

\[\text{ans} = \dfrac{1}{k} \sum_{i = 1} ^ {p} x - a_p - (x - a_p) \bmod k \]

前面好处理,只考虑后面怎么做:

\[(x-a_p) \bmod k = x \bmod k - a_p \bmod k + [a_p \bmod k > x \bmod k] \times k \]

可以用主席树在线解决。