维护全局标记 $(a,b)$ 表示维护的数 $x$ 的实际值为 $ax+b$ ,这里需要始终保证 $a≠0$,初始时 $a=1,b=0$。
单点修改成 $val$ 就把维护的值改成 $\frac{val - b}{a}$。注意需要逆元需要实时维护。
加法直接加。
乘法若 $val≠0$ 就直接乘,注意加法标记也要乘。否则操作就是全部赋值为 $0$。
赋值为 $val$ 就把维护的数组全部清零,然后令 $a=1,b=val $.
查询直接查。
1 |
|
维护全局标记 $(a,b)$ 表示维护的数 $x$ 的实际值为 $ax+b$ ,这里需要始终保证 $a≠0$,初始时 $a=1,b=0$。
单点修改成 $val$ 就把维护的值改成 $\frac{val - b}{a}$。注意需要逆元需要实时维护。
加法直接加。
乘法若 $val≠0$ 就直接乘,注意加法标记也要乘。否则操作就是全部赋值为 $0$。
赋值为 $val$ 就把维护的数组全部清零,然后令 $a=1,b=val $.
查询直接查。
1 | #include <bits/stdc++.h> |