AT_arc180_a [ARC180A] ABA and BAB
题目描述
给定一个由 `A` 和 `B` 组成、长度为 $N$ 的字符串 $S$。
你可以以任意顺序重复进行以下两种操作 $0$ 次或多次:
- 在 $S$ 中选择一个连续的子串 `ABA`,并将其替换为 `A`。
- 在 $S$ 中选择一个连续的子串 `BAB`,并将其替换为 `B`。
请你求出经过若干次操作后,可能得到的不同字符串的数量,并对 $10^9+7$ 取模。
输入格式
输入以以下格式从标准输入读入:
> $N$ $S$
输出格式
请输出答案。
说明/提示
## 限制条件
- $1 \leq N \leq 250000$
- $S$ 是由 `A` 和 `B` 组成的长度为 $N$ 的字符串。
## 样例解释 1
操作后可能得到以下 $2$ 种字符串:
- `ABAB`:不进行任何操作即可得到该字符串。
- `AB`:将 $S=$`ABAB` 的第 $1$ 到第 $3$ 个字符 `ABA` 替换为 `A`,得到 $S=$`AB`。另外,$S=$`ABAB` 的第 $2$ 到第 $4$ 个字符 `BAB` 也可以替换为 `B`,但结果得到的 `AB` 不要重复计数。
## 样例解释 2
无法进行任何操作。
## 样例解释 4
不要忘记对 $10^9+7$ 取模。
由 ChatGPT 4.1 翻译