
动态序列区间仿射变换区间求和(Dynamic Sequence Range Affine Range Sum)
问题描述
给定一个长度为 N 的整数序列 a0,a1,…,aN−1。
处理 Q 个查询,类型如下:
0 i x:在位置 i 插入元素 x。若 i<∣a∣,则插入到 ai 前;若 i=∣a∣,则追加到末尾。
1 i:删除第 i 个元素 ai(删除后后续元素前移)。
2 l r:将子序列 al,al+1,…,ar−1 翻转。
3 l r b c:对每个 i=l,l+1,…,r−1,执行赋值 ai←b×ai+c。
4 l r:输出区间和 ∑i=lr−1aimod998244353。
约束条件
- 1≤N≤5×105
- 1≤Q≤5×105
- 0≤ai<998244353
- 对于格式
0 i x:
- 0≤i≤∣a∣(当时序列长度)
- 0≤x<998244353
- 对于格式
1 i:
- 0≤i<∣a∣
- 对于格式
2 l r:
- 0≤l<r≤∣a∣
- 对于格式
3 l r b c:
- 0≤l<r≤∣a∣
- 0≤b,c<998244353
- 对于格式
4 l r:
- 0≤l<r≤∣a∣
输入
N Q
a0 a1 ⋯ aN−1
Query₀
Query₁
:
QueryQ−1
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