比赛场次 606
比赛名称 SYOI 专题 6:折半搜索
比赛状态 已结束比赛成绩
开始时间 2024-04-25 19:00:00
结束时间 2024-04-30 22:00:00
开放分组 全部用户
注释介绍 折半搜索,又称为meet-in-the-middle。
主讲人:刘一澈
题目名称 文艺平衡树(变态版)
输入输出 Balanced_Tree.in/out
时间限制 1000 ms (1 s)
内存限制 64 MiB
测试点数 20 简单对比
用户 结果 时间 内存 得分

文艺平衡树(变态版)

★★★★   输入文件:Balanced_Tree.in   输出文件:Balanced_Tree.out   简单对比
时间限制:1 s   内存限制:64 MiB

【题目描述】

给定一个序列,请编写一种数据结构来完成以下操作:

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,输出对应的值,每行一个(含输出操作的)操作输出;

【样例输入】

5 8
1 2 3 4 5
1 1 5 1
2 1 5
3 5 7
4 6 6
5 1 5
6 1 5
7 1
8 1 5

【样例输出】

20
6
2
2

【提示】

保证除求和(操作2)外其他结果均在long long范围内。

**提示:求max/min时取模会使答案错误。**

共20个测试点:

对于 50% 的数据,$n,m≤10000$;

对于 90% 的数据,$n,m≤100000$;

对于 100% 的数据,$n≤300000,m≤100000$.

【来源】

by _SMY