题目 30038

可持久化区间仿射区间求和

查看题解 ↗GitHub ↗如何评测
题号
30038
时间限制
10000 ms
内存限制
1024 MB
标签
数据结构
来源
Library Checker (yosupo06) - persistent_range_affine_range_sum

【题目描述】

给定一个长度为 NN 的整数序列 a0,a1,…,aN−1a_0, a_1, \dots, a_{N-1}。 令 A−1A_{-1} 表示序列 (a0,a1,…,aN−1)(a_0, a_1, \dots, a_{N-1})。

对于 i=0,1,…,Q−1i=0,1,\ldots,Q-1,依次处理如下查询:

  • 0 k l r b c:将 AkA_k 复制一份作为 AiA_i。对 AiA_i 中的每个 j=l,l+1,…,r−1j = l, l+1, \dots, r - 1,令 aj←b×aj+ca_j \gets b \times a_j + c。
  • 1 k s l r:将 AkA_k 复制一份作为 AiA_i。对 AiA_i 中的每个 j=l,l+1,…,r−1j = l, l+1, \dots, r - 1,令 aj←aj′a_j \gets a'_j(其中 aj′a'_j 是 aja_j 在 AsA_s 中的值)。
  • 2 k l r:输出 AkA_k 中的 ∑j=lr−1aj mod 998244353\sum_{j = l}^{r - 1} a_j \bmod 998244353。

【输入】

文本
$N$ $Q$
$a_0$ $a_1$ ... $a_{N-1}$
$\textrm{Query}_0$
$\vdots$
$\textrm{Query}_{Q-1}$

【输出】

对每个类型为 2 的查询输出一行一个整数。

【输入样例】

文本
5 11
1 2 3 4 5
2 -1 0 5
0 -1 2 4 100 1
0 1 1 3 100 3
2 2 1 5
2 2 0 5
1 2 -1 1 3
2 5 0 1
2 5 0 2
2 5 0 3
2 5 0 4
2 5 0 5

【输出样例】

文本
15
30712
30713
1
3
6
407
412

【输入样例2】

文本
10 10
98571302 347764691 874908879 522525408 665451426 585614689 752625419 867933974 588349757 331245164
2 -1 5 7
1 -1 -1 8 9
0 -1 3 4 559932567 67455332
1 1 1 0 8
1 3 1 5 9
2 1 1 2
1 2 -1 5 6
0 -1 0 9 703344909 379527638
2 6 2 9
2 7 7 9

【输出样例2】

文本
339995755
347764691
266369014
783560804

【数据范围】

设 tit_i 表示第 ii 个查询的类型(0≤i<Q0\leq i \lt Q,ti∈{0,1,2}t_i\in\lbrace 0,1,2\rbrace)。

  • 1≤N≤1000001 \leq N \leq 100000
  • 1≤Q≤1000001 \leq Q \leq 100000
  • 0≤a<9982443530 \leq a \lt 998244353
  • 1≤b<9982443531 \leq b \lt 998244353
  • 0≤c<9982443530 \leq c \lt 998244353
  • −1≤k<i-1 \leq k \lt i
  • k=−1k=-1 或 tk∈{0,1}t_k\in\lbrace 0,1\rbrace
  • −1≤s<i-1 \leq s \lt i
  • s=−1s=-1 或 ts∈{0,1}t_s\in\lbrace 0,1\rbrace
  • 0≤l<r≤N0 \leq l \lt r \leq N

【来源】

Library Checker(yosupo06) persistent_range_affine_range_sum

数据下载

题目 30038 的公开数据

正在读取文件列表…

常用命令

题目 30038 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。