#P10587. 「ALFR Round 2」C 小 Y 的数

「ALFR Round 2」C 小 Y 的数

题目描述

小 Y 非常喜欢 4242 这个数,于是他也喜欢以 4242 为初始数,然后往后面依次拼接 4,24,2 的数,如 42,424,4242,42,424,4242,\cdots。小 Y 给了你一个大小为 nn 的整数序列 aa,小 Y 有 mm 次操作,操作有四种:

  • 1 l r xlrl\sim r 中的数加上 xx

  • 2 l r xlrl\sim r 中的数乘上 xx

  • 3 l r xlrl\sim r 中的数修改为 xx

  • 4 l r 询问 lrl\sim r 中有多少个小 Y 喜欢的数。

输入格式

第一行两个整数 n,mn,m

第二行 nn 个整数 a1,a2,a3ana_1,a_2,a_3\cdots a_n

接下来 mm 行,每行 3344 个整数描述一次操作。

输出格式

每行一个操作 44 的答案。

8 8
41 42 43 44 45 46 47 47
4 1 8
1 1 8 377
4 1 8
2 1 1 100
1 1 8 624
4 1 7
3 1 8 424242
4 1 5
1
2
1
5

提示

样例解释

11 次操作为询问区间 181\sim8 中有多少个小 Y 喜欢的数,共 11 个,为 a2a_2

22 次操作为将区间 181\sim8 中的数加上 377377,数列 aa 变为 418,419,420,421,422,423,424,424418,419,420,421,422,423,424,424

33 次操作为询问区间 181\sim8 中有多少个小 Y 喜欢的数,共 22 个,为 a7,a8a_7,a_8

44 次操作为将区间 111\sim1 中的数乘上 100100,数列 aa 变为 41800,419,420,421,422,423,424,42441800,419,420,421,422,423,424,424

55 次操作为将区间 181\sim8 中的数加上 624624,数列 aa 变为 42424,1043,1044,1045,1046,1047,1048,104842424,1043,1044,1045,1046,1047,1048,1048

66 次操作为询问区间 171\sim7 中有多少个小 Y 喜欢的数,共 11 个,为 a1a_1

77 次操作为将区间 181\sim8 中的数修改为 424242424242,数列 aa 变为 $424242,424242,424242,424242,424242,424242,424242,424242$。

88 次操作为询问区间 151\sim5 中有多少个小 Y 喜欢的数,共 55 个,为 a1,a2,a3,a4,a5a_1,a_2,a_3,a_4,a_5

数据范围

子任务 分值 限制
00 2020 n,m104n,m\le10^4
11 8080 -

对于 100%100\% 的数据,1n,m,ai,x5×1051\le n,m,a_i,x\le5\times10^51l,rn1\le l,r\le n

保证每次操作后 1ai5×1051\le a_i\le5\times10^5