反正是个平衡树裸题,随便搞搞就能过
用rank表示指数,指数是0什么的,稍微加个边界节点就好
对于mul和add,都是直接打标记就好了
mulx的话,每次最多只会影响两个节点,对区间[l,r]乘上x的话,相当于把它右移一位,于是可能出现重叠,重叠的节点直接删掉原来的r节点,并把r的value加到r+1上面去就好
然后在l的左边插入一个节点,于是整个区间的rank就++了
然后query就直接nlog地遍历整棵树,稍微再用一点读入优化的奇技淫巧就能艹榜了【x
反正是个平衡树裸题,随便搞搞就能过
用rank表示指数,指数是0什么的,稍微加个边界节点就好
对于mul和add,都是直接打标记就好了
mulx的话,每次最多只会影响两个节点,对区间[l,r]乘上x的话,相当于把它右移一位,于是可能出现重叠,重叠的节点直接删掉原来的r节点,并把r的value加到r+1上面去就好
然后在l的左边插入一个节点,于是整个区间的rank就++了
然后query就直接nlog地遍历整棵树,稍微再用一点读入优化的奇技淫巧就能艹榜了【x