题目 30051

区间取 min/max、加 区间求和

查看题解 ↗GitHub ↗如何评测
题号
30051
时间限制
10000 ms
内存限制
1024 MB
标签
数据结构
来源
Library Checker (yosupo06) - range_chmin_chmax_add_range_sum

【题目描述】

给定一个长度为 NN 的整数序列 a0,a1,…,aN−1a_0, a_1, \dots, a _ {N - 1}。请按顺序处理以下 QQ 个查询:

  • 0 $l$ $r$ $b$:对于每个 i=l,…,r−1i = l, \dots, {r-1},令 ai←min⁡(ai,b)a_i \gets \min(a_i, b)。
  • 1 $l$ $r$ $b$:对于每个 i=l,…,r−1i = l, \dots, {r-1},令 ai←max⁡(ai,b)a_i \gets \max(a_i, b)。
  • 2 $l$ $r$ $b$:对于每个 i=l,…,r−1i = l, \dots, {r-1},令 ai←ai+ba_i \gets a_i + b。
  • 3 $l$ $r$:输出 ∑i=lr−1ai\sum _ {i = l} ^ {r-1} a_i。

【输入】

输入格式如下:

文本
$N$ $Q$
$a_0$ $a_1$ ... $a_{N - 1}$
$\textrm{Query}_0$
$\textrm{Query}_1$
:
$\textrm{Query}_{Q - 1}$

【输出】

对于每个类型为 3 的查询,输出一行一个整数,表示对应区间内元素的和。

【输入样例】

文本
5 7
1 2 3 4 5
3 0 5
2 2 4 100
3 0 3
0 1 3 10
3 2 5
1 2 5 20
3 0 5

【输出样例】

文本
15
106
119
147

【数据范围】

  • 1≤N,Q≤2000001 \leq N, Q \leq 200000
  • 在处理查询的过程中始终满足 ∣ai∣≤1000000000000\vert a_i \vert \leq 1000000000000。
  • 0≤l<r≤N0 \leq l < r \leq N

【来源】

Library Checker(yosupo06) range_chmin_chmax_add_range_sum

数据下载

题目 30051 的公开数据

正在读取文件列表…

常用命令

题目 30051 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。