题意描述
source: https://loj.ac/p/10129
维护一个 $\bmod M$ 意义下的序列,支持三种操作:
- 区间乘 $x$
- 区间加 $x$
- 求区间和
序列的初始值和 $x$ 都在 $[0,10^9]$ 内,$1\le M\le 10^9+7$,$1\le n,m\le 10^5$。
思路
将两种操作合并为一种操作“乘 $k$ 再加 $b$”,这样对于一个长为 $\rm len$、和为 $S$ 的序列,每个数乘 $k$ 再加 $b$ 后新的和 $S’$ 就是 $kS+b\cdot\rm len$。详见代码。
代码
1 |
|