AT_abc104_d [ABC104D] We Love ABC

题目描述

字符串 $T$ 的 *ABC 数* 是满足以下所有条件的整数三元组 $(i,\ j,\ k)$ 的个数。 - $1\ \le \ i\

输入格式

输入为以下格式,通过标准输入给出。 > $S$

输出格式

请输出 $3^Q$ 种字符串所有 ABC 数之和对 $10^9 + 7$ 取模的结果。

说明/提示

### 限制条件 - $3\ \le\ |S|\ \le\ 10^5$。 - $S$ 的每个字符都是 `A`、`B`、`C` 或 `?` 之一。 ### 样例解释 1 在本例中,$Q = 2$,将每个 `?` 替换为 `A`、`B` 或 `C`,共可得到 $3^Q = 9$ 种字符串。每种字符串的 ABC 数如下: - `AAAC`: $0$ - `AABC`: $2$ - `AACC`: $0$ - `ABAC`: $1$ - `ABBC`: $2$ - `ABCC`: $2$ - `ACAC`: $0$ - `ACBC`: $1$ - `ACCC`: $0$ 这些和为 $0 + 2 + 0 + 1 + 2 + 2 + 0 + 1 + 0 = 8$,对 $10^9 + 7$ 取模后输出 $8$。 ### 样例解释 2 当 $Q = 0$ 时,只需输出 $S$ 本身的 ABC 数对 $10^9 + 7$ 取模的结果。此字符串与题目描述中的例子相同,其 ABC 数为 $3$。 ### 样例解释 3 在本例中,$3^Q$ 种字符串所有 ABC 数之和为 $2291979612924$,对 $10^9 + 7$ 取模后为 $979596887$,输出 $979596887$。 由 ChatGPT 4.1 翻译。