luogu#P12087. [RMI 2019] 好数 / Lucky Numbers

[RMI 2019] 好数 / Lucky Numbers

题目背景

在某些文化中,数字 1313 被视为霉运之兆。

题目描述

本题中下标是 1-indexed\texttt{1-indexed} 的。

给定一个 nn 位数 xx。你需要计算不大于 xx非负整数中,有多少非负整数在十进制表示下不含 1313 作为(连续)子串。

额外地,有 qq 次操作:

  • 1\texttt{1} ll rr:将 xx 视为字符串,将 xx 的子串 xlxl+1xrx_lx_{l+1}\ldots x_r 视为数字 yyy=xlxl+1xry=\overline{x_lx_{l+1}\ldots x_r})。计算不大于 yy非负整数中,有多少非负整数在十进制表示下不含 1313 作为(连续)子串。
  • 2\texttt{2} pp dd:将 xx 的第 pp 位替换成 dd

以上所有操作答案对 (109+7)(10^9+7) 取模。

注意 xxyy 可能有前导零。所有的答案都要对 (109+7)(10^9+7) 取模。

输入格式

第一行,两个整数 n,qn,q

第二行,非负整数 xx

接下来 qq 行,每行三个非负整数描述一个操作,格式见上。

输出格式

所有的答案都要对 (109+7)(10^9+7) 取模。

第一行,输出一个非负整数,表示不大于 xx 的非负整数中,有多少非负整数在十进制表示下不含 1313 作为子串。

接下来,对于每个 11 操作输出一行一个非负整数,表示答案。

6 10
560484
2 6 4
2 1 4
2 5 6
2 6 1
2 3 6
1 3 6
1 1 3
1 6 6
1 2 6
2 1 7
528145
6228
452
2
63454

提示

对于 100%100\% 的数据,保证:

  • 1n1051\le n\le 10^5
  • 0q1040\le q\le 10^4
  • 1lrn1\le l\le r\le n
  • 1pn1\le p\le n0d90\le d\le 9

子任务

编号 nn\le qq 特殊性质 分值
11 66 =0=0 1414
22 1818
33 10410^4 104\le 10^4 A 99
44 10510^5 2727
55 10410^4 99
66 10510^5 2727

特殊性质 A:只有操作 11