#aBC357F. [ABC357F] Two Sequence Queries

[ABC357F] Two Sequence Queries

AT_abc357_f [ABC357F] Two Sequence Queries

题目描述

给定长度为 NN 的数列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N)B=(B1,B2,,BN)B=(B_1,B_2,\ldots,B_N)
QQ 个查询,请依次处理这些查询。

查询有以下 33 种类型:

  • 1 l r x :将 xx 加到 Al,Al+1,,ArA_l,A_{l+1},\ldots,A_r 上。
  • 2 l r x :将 xx 加到 Bl,Bl+1,,BrB_l,B_{l+1},\ldots,B_r 上。
  • 3 l r :输出 i=lr(Ai×Bi)\displaystyle\sum_{i=l}^r (A_i\times B_i) 除以 998244353998244353 的余数。

输入格式

输入以如下格式从标准输入给出。这里,queryi\mathrm{query}_i (1iQ)(1\leq i\leq Q) 表示第 ii 个要处理的查询。

NN QQ A1A_1 A2A_2 \ldots ANA_N B1B_1 B2B_2 \ldots BNB_N
query1\mathrm{query}_1
query2\mathrm{query}_2
\vdots
queryQ\mathrm{query}_Q

每个查询有以下几种格式之一:

11 ll rr xx

22 ll rr xx

33 ll rr

输出格式

若有 KK 个第 33 种类型的查询,则输出 KK 行。
ii 行(1iK1\leq i\leq K)输出第 ii 个第 33 种类型查询的答案。

输入输出样例 #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

说明/提示

数据范围

  • 1N,Q2×1051\leq N,Q\leq 2\times 10^5
  • 0Ai,Bi1090\leq A_i,B_i\leq 10^9
  • 1lrN1\leq l\leq r\leq N
  • 1x1091\leq x\leq 10^9
  • 输入均为整数
  • 至少存在一个第 33 种类型的查询

样例解释 1

初始时,A=(1,3,5,6,8)A=(1,3,5,6,8)B=(3,1,2,1,2)B=(3,1,2,1,2)。查询按如下顺序处理:

  • 11 个查询,输出 (1×3)+(3×1)+(5×2)=16(1\times 3)+(3\times 1)+(5\times 2)=16,对 998244353998244353 取余为 1616
  • 22 个查询,将 33 加到 A2,A3,A4,A5A_2,A_3,A_4,A_5 上。A=(1,6,8,9,11)A=(1,6,8,9,11)
  • 33 个查询,输出 (1×3)+(6×1)+(8×2)=25(1\times 3)+(6\times 1)+(8\times 2)=25,对 998244353998244353 取余为 2525
  • 44 个查询,将 11 加到 A1,A2,A3A_1,A_2,A_3 上。A=(2,7,9,9,11)A=(2,7,9,9,11)
  • 55 个查询,将 22 加到 B5B_5 上。B=(3,1,2,1,4)B=(3,1,2,1,4)
  • 66 个查询,输出 $(2\times 3)+(7\times 1)+(9\times 2)+(9\times 1)+(11\times 4)=84$,对 998244353998244353 取余为 8484

因此,第 112233 行分别输出 161625258484

样例解释 2

请注意,第 33 种类型的查询需要对 998244353998244353 取余。

由 ChatGPT 4.1 翻译