#ABC357F. 双序列区间查询

双序列区间查询

双序列区间查询

题目描述

给定长度为 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 个查询。

查询有三种类型:

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

输入格式

输入按以下格式从标准输入给出。这里,queryi\mathrm{query}_i1iQ1\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 个,则输出 KK 行。

ii 行(1iK1\leq i\leq K)输出第 ii 个第三种类型查询的答案。

样例

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
16
25
84

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

第 1 个查询,输出 (1×3)+(3×1)+(5×2)=16(1\times 3)+(3\times 1)+(5\times 2)=16 除以 998244353998244353 的余数,即 1616

第 2 个查询,给 A2,A3,A4,A5A_2,A_3,A_4,A_5 加上 33。现在 A=(1,6,8,9,11)A=(1,6,8,9,11)

第 3 个查询,输出 (1×3)+(6×1)+(8×2)=25(1\times 3)+(6\times 1)+(8\times 2)=25 除以 998244353998244353 的余数,即 2525

第 4 个查询,给 A1,A2,A3A_1,A_2,A_3 加上 11。现在 A=(2,7,9,9,11)A=(2,7,9,9,11)

第 5 个查询,给 B5B_5 加上 22。现在 B=(3,1,2,1,4)B=(3,1,2,1,4)

第 6 个查询,输出 $(2\times 3)+(7\times 1)+(9\times 2)+(9\times 1)+(11\times 4)=84$ 除以 998244353998244353 的余数,即 8484

因此,第 1、2、3 行应分别输出 161625258484

2 3
1000000000 1000000000
1000000000 1000000000
3 1 1
1 2 2 1000000000
3 1 2
716070898
151723988

对于第三种类型的查询,要输出除以 998244353998244353 的余数。

数据范围

  • 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
  • 输入均为整数
  • 至少有一个第三种类型的查询
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
3324
类型
传统题
Time Limit
5000ms
Memory Limit
1024MiB
上传者
标签