题目 30033

动态序列区间仿射区间求和

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

【题目描述】

给定一个由 NN 个整数构成的序列 a0,a1,...,aN−1a_0, a_1, ..., a_{N - 1}。

按顺序处理 QQ 个如下类型的查询:

  • 0 $i$ $x$:
    • 若 i<∣a∣i < |a|,在 aia_i 之前插入 xx
    • 若 i=∣a∣i = |a|,在 a∣a∣−1a_{|a| - 1} 之后插入 xx
  • 1 $i$:删除 aia_i(剩余元素将拼接在一起)
  • 2 $l$ $r$:翻转 al,al+1,al+2,…,ar−1a_l, a_{l + 1}, a_{l + 2}, \dots, a_{r - 1}
  • 3 $l$ $r$ $b$ $c$:对于每个 i=l,l+1,l+2,…,r−1i = l, l + 1, l + 2, \dots, {r - 1},令 ai←b×ai+ca_i \gets b \times a_i + c
  • 4 $l$ $r$:输出 ∑i=lr−1ai mod 998244353\sum_{i = l}^{r - 1} a_i \bmod 998244353

【输入】

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

【输出】

对于每个 4 $l$ $r$ 查询,输出一行一个整数,表示对应的答案。

【输入样例】

文本
5 6
1 10 100 1000 10000
4 1 4
0 2 100000
1 3
4 2 5
2 2 5
4 0 4

【输出样例】

文本
1110
111000
11011

【数据范围】

  • 1≤N,Q≤5000001 \le N, Q \le 500000
  • 0≤ai<9982443530 \le a_i \lt 998244353
  • 对于格式 0 $i$ $x$:
    • 0≤i≤(当时的∣a∣)0 \le i \le (当时的 |a|)
    • 0≤x<9982443530 \le x \lt 998244353
  • 对于格式 1 $i$:
    • 0≤i<(当时的∣a∣)0 \le i \lt (当时的 |a|)
  • 对于格式 2 $l$ $r$:
    • 0≤l<r≤(当时的∣a∣)0 \le l \lt r \le (当时的 |a|)
  • 对于格式 3 $l$ $r$ $b$ $c$:
    • 0≤l<r≤(当时的∣a∣)0 \le l \lt r \le (当时的 |a|)
    • 0≤b<9982443530 \le b \lt 998244353
    • 0≤c<9982443530 \le c \lt 998244353
  • 对于格式 4 $l$ $r$:
    • 0≤l<r≤(当时的∣a∣)0 \le l \lt r \le (当时的 |a|)

【来源】

Library Checker(yosupo06) dynamic_sequence_range_affine_range_sum

数据下载

题目 30033 的公开数据

正在读取文件列表…

常用命令

题目 30033 的 ROJ 命令

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