AT_jag2018summer_day2_i ADD DIV MAX RESTORE

题目描述

给定一个整数序列 $a_0, a_1, \ldots, a_{N-1}$。 你需要进行 $Q$ 次操作,每次操作为以下四种之一: - `加法操作(ADD QUERY,t=0\ l\ r\ x)`:对于每个 $i$ 满足 $l \leq i \leq r$,将 $a_i$ 替换为 $a_i + x$。 - `除法操作(DIV QUERY,t=1\ l\ r\ x)`:对于每个 $i$ 满足 $l \leq i \leq r$,将 $a_i$ 替换为 $\mathrm{floor}(a_i / x)$,其中 $\mathrm{floor}(y)$ 表示不大于 $y$ 的最大整数。 - `区间最大值查询(MAX QUERY,t=2\ l\ r\ x=0)`:输出 $\max(a_l, a_{l+1}, \ldots, a_r)$。 - `还原操作(RESTORE QUERY,t=3\ l\ r\ x=0)`:对于每个 $i$ 满足 $l \leq i \leq r$,将 $a_i$ 还原为输入时的初始值。

输入格式

输入从标准输入读入,格式如下: > $N\ Q\ a_0\ a_1\ \ldots\ a_{N-1}\ t_1\ l_1\ r_1\ x_1\ t_2\ l_2\ r_2\ x_2\ \ldots\ t_Q\ l_Q\ r_Q\ x_Q$

输出格式

对于每个 `MAX QUERY` 操作,输出对应区间的最大值,每行一个结果。

说明/提示

### 数据范围 - 所有输入值均为整数。 - $1 \leq N, Q \leq 200,\!000$ - $0 \leq a_i \leq 10^8$ - $t_i = 0, 1, 2, 3$ - $0 \leq l_i \leq r_i \leq N-1$ - $1 \leq x_i \leq 1000$(当 $t_i \neq 2, 3$ 时) ### 样例说明 1 - $\max(1, 2, 3, 4, 5) = 5$ - $1, 2, 3, 4, 5 \to 11, 12, 3, 4, 5$ - $\max(11, 12, 3, 4, 5) = 12$ - $\max(3) = 3$ - $11, 12, 3, 4, 5 \to 2, 3, 3, 4, 5$ - $\max(2) = 2$ - $\max(3) = 3$ - 数组还原为 $1, 2, 3, 4, 5$ - $\max(1, 2) = 2$ 由 ChatGPT 4.1 翻译