#C. 扶苏的问题

    Type: RemoteJudge 2000ms 512MiB

扶苏的问题

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

给定一个长度为 nn 的序列 aa,要求支持如下三个操作:

  1. 给定区间 [l,r][l, r],将区间内每个数都修改为 xx
  2. 给定区间 [l,r][l, r],将区间内每个数都加上 xx
  3. 给定区间 [l,r][l, r],求区间内的最大值。

输入格式

第一行是两个整数,依次表示序列的长度 nn 和操作的个数 qq
第二行有 nn 个整数,第 ii 个整数表示序列中的第 ii 个数 aia_i
接下来 qq 行,每行表示一个操作。每行首先有一个整数 opop,表示操作的类型。

  • op=1op = 1,则接下来有三个整数 l,r,xl, r, x,表示将区间 [l,r][l, r] 内的每个数都修改为 xx
  • op=2op = 2,则接下来有三个整数 l,r,xl, r, x,表示将区间 [l,r][l, r] 内的每个数都加上 xx
  • op=3op = 3,则接下来有两个整数 l,rl, r,表示查询区间 [l,r][l, r] 内的最大值。

输出格式

对于每个 op=3op = 3 的操作,输出一行一个整数表示答案。

6 6
1 1 4 5 1 4
1 1 2 6
2 3 4 2
3 1 4
3 2 3
1 1 6 -1
3 1 6

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

提示

数据规模与约定

  • 对于 10%10\% 的数据,n=q=1n = q = 1
  • 对于 40%40\% 的数据,n,q103n, q \leq 10^3
  • 对于 50%50\% 的数据,0ai,x1040 \leq a_i, x \leq 10^4
  • 对于 60%60\% 的数据,op1op \neq 1
  • 对于 90%90\% 的数据,n,q105n, q \leq 10^5
  • 对于 100%100\% 的数据,1n,q1061 \leq n, q \leq 10^61l,rn1 \leq l, r \leq nop{1,2,3}op \in \{1, 2, 3\}ai,x109|a_i|, |x| \leq 10^9

提示

请注意大量数据读入对程序效率造成的影响。

初二竞赛组——线段树基础

Not Claimed
Status
Done
Problem
7
Open Since
2024-10-30 9:00
Deadline
2025-1-10 23:59
Extension
24 hour(s)