AT_agc022_e [AGC022E] Median Replace
题目描述
太一认为,由 $0$ 和 $1$ 组成的奇数长度 $N$ 的字符串 $X$,如果满足以下条件,则是**美丽的**。条件如下:可以进行 $\frac{N-1}{2}$ 次如下操作,使得最终字符串唯一的字符为 $1$。
- 选择 $X$ 中**连续的** $3$ 个比特,并用它们的中位数替换这三个比特。例如,对 `00110` 的中间 $3$ 个比特应用该操作后,字符串变为 `010`。
太一有一个由 `0`、`1`、`?` 组成的字符串。他想知道,将每个 `?` 替换为 `0` 或 `1`,能够得到美丽字符串的方法数。请输出该方法数对 $10^{9}+7$ 取模的结果。
输入格式
输入从标准输入读取,格式如下:
> $S$
输出格式
输出将每个 `?` 替换为 $0$ 或 $1$,能够得到美丽字符串的方法数,对 $10^{9}+7$ 取模。
说明/提示
## 限制条件
- $1 \leq |S| \leq 300000$
- $|S|$ 是奇数。
- $S$ 的所有字符均为 `0`、`1` 或 `?`。
## 样例解释 1
将 `?` 替换为 `0` 或 `1` 的方法共有 $4$ 种:
- `11100`:该字符串是美丽的。因为首先对最后 $3$ 个比特应用操作,得到 `110`,再对整个字符串应用操作,得到 `1`。
- `11000`:该字符串是美丽的。因为首先对最后 $3$ 个比特应用操作,得到 `110`,再对整个字符串应用操作,得到 `1`。
- `10100`:该字符串不是美丽的。因为不存在操作顺序能使最终字符串为 `1`。
- `10000`:该字符串不是美丽的。因为不存在操作顺序能使最终字符串为 `1`。
因此,可以得到美丽字符串的方法有 $2$ 种。
## 样例解释 2
在这种情况下,只有 `1` 是唯一的美丽字符串。
## 样例解释 3
不要忘记输出答案对 $10^{9}+7$ 取模。
由 ChatGPT 4.1 翻译