U537775 单点修改+区间最大值
题目描述
给定一个长度为 $n$ 的数列 $a_1, a_2, \ldots, a_n$。
接下来有 $q$ 次操作,操作分为如下两种类型:
- $\mathtt{1\ p\ x}$:将 $a_p$ 的数值修改为 $x$;
- $\mathtt{2\ l\ r}$:查询下标区间 $[l, r]$ 范围内所有元素(即 $a_l, a_{l+1}, \ldots, a_r$)的最大值。
对于每次查询操作,你需要输出对应的结果。
输入格式
第一行,一个整数 $n(1 \le n \le 2 \times 10^5)$,表示数列大小。
第二行,$n$ 个整数 $a_1, a_2, \ldots, a_n(1 \le a_i \le 10^9)$,表示初始数列中每个元素的数值。
第三行,一个整数 $q(1 \le q \le 2 \times 10^5)$,表示操作次数。
接下来 $q$ 行,每行包含依次操作,格式为:
- $\mathtt{1\ p\ x}$($1 \le p \le n, 1 \le x \le 10^9$),或
- $\mathtt{2\ l\ r}$($1 \le l \le r \le n$)。
输出格式
对于每次查询操作 $\mathtt{2\ l\ r}$,输出一行,包含一个整数,表示下标区间 $[l, r]$ 范围内所有元素的最大值。
说明/提示
#### 数据规模与约定
- 对于 $30\%$ 的数据,$n,q \le 20$
- 对于 $60\%$ 的数据,$n,q \le 2000$
- 对于 $100\%$ 的数据,$1 \le n,q \le 2 \times 10^5; 1 \le a_i,x \le 10^9; 1 \le p \le n; 1 \le l \le r \le n$