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$。 输入输出可能过大,请使用较快的输入输出方式。 题目并不难。