U190681 [ljoi2077]xljznwwt

题目描述

定义两个数列之间的运算: 对于数列 $A=\{a_1,a_2,...,a_n\}$, $B=\{b_1,b_2,...,b_m\}$而言: 定义 $A\times B$ : 当且仅当 $m=n$ 时,有 $A\times B=\{a_1*b_1,a_2*b_2,...,a_n*b_n\}$ ,否则为将短的位数用1补齐以后的结果。 定义 $A \% B$ :当且仅当 $m=n$ 时,定义 $F(i)=\sum_{1\leq j\leq n} ^ {j≠i}a_jb_j$ ,则 $A \% B= \{F(i)-a_ib_i\}$ ,否则为将短的位数用1补齐的结果。 定义 $(A \% B)^k=(A \% B) \times (A \% B)\times ...\times (A \% B)$ , 乘 $k$ 次 定义 $A \%B ^k = A\%B\%B\%...\%B$,模 $k$ 次 定义 $|A|=\sum_{i=1}^n a_i$ 现在给定一个数列 $A=\{a_1,a_2,...,a_n\}$ ,定义 $A(l,r)$ 表示 $A$ 的 $l$ 到 $r$ 位所组成的数列,你需要维护三种, $q$ 个操作: 1. `1 l1 r1 l0 r0 k` 表示将 $A(l_1,r_1)$ 变为 $A(l_1,r_1)\%B(l_0,r_0)^k$ 2. `2 l1 r1 l0 r0` 表示输出 $|A(l_1,r_1)*B(l_0,r_0)|$ 的结果 3. `3 l r k` 对于 $l,r$ ,若 $r-l+1$ 为奇,令 $mid=floor(\dfrac {l+r} 2)$ ,则输出 $|(A(l,mid+1)\%B(mid+1,r))^k|$ ,否则输出 $|(A(l,mid)\%B(mid+1,r))^k|$ 。

输入格式

第一行一个整数 $T$ 表示数据组数。 对于每组数据,都有第一行为两个数 $n,q$ ,分别表示序列长度与操作组数。 接下来 $q$ 行,可能会有 `1 l1 r1 l0 r0 k` , `2 l1 r1 l0 r0` , `3 l r k` 三种情况。

输出格式

输出每一个 `2` 操作与 `3` 操作的结果,结果对 $998244353$ 取模。

说明/提示

$1 \leq T \leq 50,1\leq n \leq 20, 1\leq q\leq2*10^6 , 1\leq l