/ Vijos / 题库 /

动态序列维护与查询

动态序列维护与查询

时间限制:1秒  内存限制:256M


【题目描述】

  对于给定初始序列 \(a[1],a[2]..a[n]\),变成实现下列对该序列的维护与查询:

  1 \(k\ v\):在序列的第 \(k\) 个元素之后插入一个元素 \(v\)(如果 \(k==0\) 表示在第一个元素之前插入)。
  2 \(k\):删除序列的第 \(k\) 个元素。
  3 \(k\ v\):把序列的第 \(k\) 个元素增加 \(v\)。
  4 \(i\ j\):查询区间:\(a[i],a[i+1]…,a[j]\) 范围内的最小元素的值。

【输入格式】

  第 1 行包含两个整数 \(n,m\),其中 \(n\) 表示最初序列的元素个数,\(m\) 表示对序列维护和查询操作数目。
  第 2 行包含 \(n\) 个整数,表示序列 \(A\) 中的元素 \(a[1]..a[n](|a[i]|<=10^9)\)。
  接下来的 \(m\) 行,每行是一条操作命令,格式见题目描述,所有操作均合法,其中\((0≤|v|≤10^9)\)。

【输出格式】

  输出查询的结果。

【输入输出样例】

 Input

10 11
3 2 9 2 1 10 6 5 8 7
4 3 10
1 7 0
1 0 -1
2 7
3 2 -5
3 1 -3
1 8 -4
2 1
2 10
1 10 -1
4 1 11

 Output

1
-4

【数据限制】

  对于 \(100\%\) 的数据,\(n,m≤200000\)

【来源】

  Mr.he**

信息

ID
2689
难度
9
分类
数据结构 | 平衡树 点击显示
标签
(无)
递交数
3
已通过
1
通过率
33%
被复制
3
上传者