/ Vijos / 题库 /

序列问题[5]

序列问题[5]

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


【题目描述】

  写一个程序,要求维护一个数列,支持一下几种操作:

  1 \(k\ v\) : 在第 \(k\) 的元素后面插入一个 \(v\)(若 \(k=0\),表示插入到数列首部)。
  2 \(k\) : 删除第 \(k\) 个元素。
  3 \(i\ j\ v\) :把第 \(i\) 个到第 \(j\) 个元素连续 \(j-i+1\) 个元素统一修改为 \(v\)。
  4 \(i\ j\) : 查询第 \(i\) 个元素到第 \(j\) 个元素的最大连续子序列。

【输入格式】

  第 1 行为 \(n,m\),\(n\) 表示初始数列中的元素个数,\(m\) 表示要操作的数目。
  第 2 行包含 \(n\) 个数字,描述初始数列。
  以下 \(m\) 行,每行一条操作,格式见题目描述。

【输出格式】

  对输入中操作 4,请输出答案。

【输入输出样例】

 Input

9 10
2 -6 3 5 1 -5 -3 6 3
4 1 9
2 4
1 5 -2
3 2 4 0
4 3 7
1 3 4
2 9
1 5 12
3 2 4 -3
4 1 9

 Output

10
0
12

【数据限制】

任何时刻,数列中至少有1个数。输入数据保证一定是正确的,即指定位置的数一定存在。
  对于 \(100\%\) 的数据,\(1≤n,m≤200000\),任何时刻数列中包含最多有400000个数,且任何时刻,数列中的数均在[-1000,1000]以内。

【来源】

  Mr.he**

信息

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