U31865 文艺平衡树(变态版)
题目背景
本题是文艺平衡树的加强版,综合了平衡树区间的大部分基本操作,当您AC本题后,您将掌握有关平衡树区间操作的大部分问题。可是,您能AC本题吗?(^_^)
题目描述
给定一个序列,请编写一种数据结构来完成以下操作:
1. 输入$l,r,k$;对区间 $[l,r]$ 每个数加上$k$;
2. 输入$l,r$;输出区间 $[l,r]$ 的和,并对$1e9+7$取模;
3. 输入$l,k$;在位置$l$后添加一个大小为$k$的节点;
4. 输入$l,r$;删除区间 $[l,r]$;
5. 输入$l,r$;输出区间 $[l,r]$ 最大值;
6. 输入$l,r$;输出区间 $[l,r]$ 最小值;
7. 输入$l,r,k$;将区间$[l,r]$的值全部改为k;
8. 输入$l,r$;反转区间 $[l,r]$;
注意:对于删除添加操作,例如在位置$i$后添加值$k$,那么$k$的位置为$i+1$,原$i+1$位置的数的位置为$i+2$,以此类推。若删除区间 $[l,r]$ 那么原$r+1$位置的数的位置变为$l$以此类推。即每个数的位置不固定,为当前序列的相对位置。
输入格式
第一行有两个正整数 $n,m$;
第二行$n$个整数,为序列初始值.
以下$m$行每行一个操作,第一个数为操作编号,后面为它所对应的输入;
保证一切输入均为非负数,且不会有错误情况($l,r$超边界等);
输出格式
对于操作2、5、6,输出对应的值,每行一个(含输出操作的)操作输出;
说明/提示
保证除求和(操作2)外其他结果均在long long范围内。
**提示:求max/min时取模会使答案错误。**
共20个测试点:
对于50%的数据$n,m