#P9989. [Ynoi Easy Round 2023] TEST_69

[Ynoi Easy Round 2023] TEST_69

题目描述

给定一个长为 nn 的序列 aa,有 mm 次操作。

每次有两种操作:

1 l r x:对于区间 [l,r][l,r] 内所有 ii,将 aia_i 变成 gcd(ai,x)\gcd(a_i,x)

2 l r:查询区间 [l,r][l,r] 的和,答案对 2322^{32} 取模后输出。

输入格式

第一行两个数 n,mn,m

第二行 nn 个数表示 aia_i

之后 mm 行,每行三个或四个数,表示一次操作。

输出格式

对每个 22 操作,输出一行一个数表示这次查询的答案。

10 10
4 1 5 10 1 3 8 2 8 2 
2 1 7
2 1 10
1 7 10 4
1 5 8 10
2 1 8
1 3 5 2
1 3 4 3
2 5 8
2 3 7
2 6 10
32
44
26
6
6
11

提示

Idea:nzhtl1477,Solution:nhtl1477,Code:ccz181078,Data:ccz181078

对于 20%20\% 的数据,满足 1n,m,ai,x1031 \le n,m,a_i,x \le 10^3

对于 50%50\% 的数据,满足 1n,m1051 \le n,m \le 10^5,且 aa 中的元素与每次操作的 xx 均随机生成。

对于另外 20%20\% 的数据,满足所有的查询均在修改后发生。

对于 100%100\% 的数据,满足 1n2105,1m51051\le n\le 2\cdot 10^5,1\le m\le 5 \cdot 10^5,所有数值为 [1,1018][1,10^{18}] 内的整数。