AT_abc357_f [ABC357F] Two Sequence Queries
题目描述
给定长度为 N 的数列 A=(A1,A2,…,AN),B=(B1,B2,…,BN)。
有 Q 个查询,请依次处理这些查询。
查询有以下 3 种类型:
1 l r x :将 x 加到 Al,Al+1,…,Ar 上。
2 l r x :将 x 加到 Bl,Bl+1,…,Br 上。
3 l r :输出 i=l∑r(Ai×Bi) 除以 998244353 的余数。
输入格式
输入以如下格式从标准输入给出。这里,queryi (1≤i≤Q) 表示第 i 个要处理的查询。
N Q A1 A2 … AN B1 B2 … BN
query1
query2
⋮
queryQ
每个查询有以下几种格式之一:
1 l r x
2 l r x
3 l r
输出格式
若有 K 个第 3 种类型的查询,则输出 K 行。
第 i 行(1≤i≤K)输出第 i 个第 3 种类型查询的答案。
输入输出样例 #1
输入 #1
5 6
1 3 5 6 8
3 1 2 1 2
3 1 3
1 2 5 3
3 1 3
1 1 3 1
2 5 5 2
3 1 5
输出 #1
16
25
84
输入输出样例 #2
输入 #2
2 3
1000000000 1000000000
1000000000 1000000000
3 1 1
1 2 2 1000000000
3 1 2
输出 #2
716070898
151723988
说明/提示
数据范围
- 1≤N,Q≤2×105
- 0≤Ai,Bi≤109
- 1≤l≤r≤N
- 1≤x≤109
- 输入均为整数
- 至少存在一个第 3 种类型的查询
样例解释 1
初始时,A=(1,3,5,6,8),B=(3,1,2,1,2)。查询按如下顺序处理:
- 第 1 个查询,输出 (1×3)+(3×1)+(5×2)=16,对 998244353 取余为 16。
- 第 2 个查询,将 3 加到 A2,A3,A4,A5 上。A=(1,6,8,9,11)。
- 第 3 个查询,输出 (1×3)+(6×1)+(8×2)=25,对 998244353 取余为 25。
- 第 4 个查询,将 1 加到 A1,A2,A3 上。A=(2,7,9,9,11)。
- 第 5 个查询,将 2 加到 B5 上。B=(3,1,2,1,4)。
- 第 6 个查询,输出 $(2\times 3)+(7\times 1)+(9\times 2)+(9\times 1)+(11\times 4)=84$,对 998244353 取余为 84。
因此,第 1、2、3 行分别输出 16、25、84。
样例解释 2
请注意,第 3 种类型的查询需要对 998244353 取余。
由 ChatGPT 4.1 翻译