T137255 [YsOI2020] 数字
题目背景
Ysuperman 特别喜欢玩数字游戏。
题目描述
Ysuperman 希望你可以维护一个长度为 $n$ 的数组,这个数组的下标为从 $1$ 到 $n$ 的正整数。
一共有 $m$ 次操作:
- `1 l r x` 表示将第 $l$ 到第 $r$ 个数( $a_l,a_{l+1},\dots,a_r$ )中的每一个数 $a_i$ 替换成 $a_i^x$ ,也就是执行赋值 $a_i=a_i^x$ 。
- `2 l r y` 表示将第 $l$ 到第 $r$ 个数( $a_l,a_{l+1},\dots,a_r$ )中的每一个数 $a_i$ 替换成 $a_i\times a_y$ ,也就是执行赋值 $a_i=a_i\times a_y$ (若 $y\in[l,r]$ ,那么认为 $y$ 是最后一个被修改的位置)。
- `3 z` 表示查询 $a_z$ 的值。
因为这个结果可能会很大,所以你只需要输出结果 $\bmod \ {998244353}$ 的值即可。
输入格式
第一行有两个整数 $n,m$,所有整数含义见问题描述。
接下来一行 $n$ 个整数,表示 $a$ 数组的初始值。
接下来 $m$ 行,每行表示一个操作,具体见题目描述。
输出格式
对于每一个 `3` 操作,输出一行一个整数表示答案。
说明/提示
### 样例解释1
| 操作 | $a_1$ | $a_2$ | $a_3$ | $a_4$ | $a_5$ | $a_6$ |
| :---------------: | :--: | :--: | :---: | :---: | :--: | :---: |
| $0$ | $1$ | $1$ | $4$ | $5$ | $1$ | $4$ |
| $1$ | $1$ | $1$ | $16$ | $25$ | $1$ | $16$ |
| $2$ | $1$ | $1$ | $16$ | $25$ | $1$ | $16$ |
| $3$ | $1$ | $1$ | $16$ | $25$ | $1$ | $16$ |
| $4$ | $1$ | $1$ | $16$ | $25$ | $1$ | $16$ |
| $5$ | $16$ | $16$ | $256$ | $400$ | $16$ | $256$ |
| $6$ | $16$ | $16$ | $256$ | $400$ | $16$ | $256$ |
对于样例二,我有一个绝妙的解释,但是这里太小,写不下。
### 数据范围
**本题采用捆绑测试。**
| $\text{Subtask}$ | $n$ | $m$ | $\text{特殊性质}$ | $\text{分数}$ | $\text{时间限制}$ |
|:-:|:-:|:-:|:-:|:-:|:-:|
| $1$ | $= 10^3$ | $= 10^3$ | $\text{无}$ | $15$ | $1s$ |
| $2$ | $= 10^4$ | $= 5\times 10^4$ | $\text{无}$ | $25$ | $2s$ |
| $3$ | $= 10^5$ | $= 2\times 10^6$ | $\text{不包含操作二}$ | $15$ | $5s$ |
| $4$ | $= 10^5$ | $= 5\times 10^5$ | $\text{无}$ | $25$ | $5s$ |
| $5$ | $= 10^5$ | $= 2\times 10^6$ | $\text{无}$ | $20$ | $5s$ |
对于 $100\%$ 的数据, $1\le a_i\le 998244352,1\le l\le r\le n,0\le x\le 998244351,1\le y\le n,1\le z\le n$ 。
$\color{white}\text{我才不会告诉你 Subtask 2 中 n 和 m 的范围是 1e4 5e4 的。}$
### 提示
2 操作为意思是:先修改 $[l,y)$ 和 $(y,r]$ 的值再修改 $a_y$。
输入输出可能过大,请使用较快的输入输出方式。
题目并不难。