P12087 [RMI 2019] 好数 / Lucky Numbers
题目背景
在某些文化中,数字 $13$ 被视为霉运之兆。
题目描述
**本题中下标是 $\texttt{1-indexed}$ 的。**
给定一个 $n$ 位数 $x$。你需要计算**不大于** $x$ 的**非负整数**中,有多少非负整数在十进制表示下不含 $13$ 作为(连续)子串。
额外地,有 $q$ 次操作:
- $\texttt{1}$ $l$ $r$:将 $x$ 视为字符串,将 $x$ 的子串 $x_lx_{l+1}\ldots x_r$ 视为数字 $y$($y=\overline{x_lx_{l+1}\ldots x_r}$)。计算**不大于** $y$ 的**非负整数**中,有多少非负整数在十进制表示下不含 $13$ 作为(连续)子串。
- $\texttt{2}$ $p$ $d$:将 $x$ 的第 $p$ 位替换成 $d$。
以上所有操作答案对 $(10^9+7)$ 取模。
**注意 $x$ 和 $y$ 可能有前导零。所有的答案都要对 $(10^9+7)$ 取模。**
输入格式
第一行,两个整数 $n,q$。
第二行,非负整数 $x$。
接下来 $q$ 行,每行三个非负整数描述一个操作,格式见上。
输出格式
**所有的答案都要对 $(10^9+7)$ 取模。**
第一行,输出一个非负整数,表示不大于 $x$ 的非负整数中,有多少非负整数在十进制表示下不含 $13$ 作为子串。
接下来,对于每个 $1$ 操作输出一行一个非负整数,表示答案。
说明/提示
对于 $100\%$ 的数据,保证:
- $1\le n\le 10^5$;
- $0\le q\le 10^4$;
- $1\le l\le r\le n$;
- $1\le p\le n$,$0\le d\le 9$。
### 子任务
| 编号 | $n\le$ | $q$ | 特殊性质 | 分值 |
| :-: | :-: | :-: | :-: | :-: |
| $1$ | $6$ | $=0$ | | $14$ |
| $2$ | $18$ | $=0$ | | $14$ |
| $3$ | $10^4$ | $\le 10^4$ | A | $9$ |
| $4$ | $10^5$ | $\le 10^4$ | A | $27$ |
| $5$ | $10^4$ | $\le 10^4$ | | $9$ |
| $6$ | $10^5$ | $\le 10^4$ | | $27$ |
特殊性质 A:只有操作 $1$。