#ATabc104d. [ABC104D] We Love ABC
[ABC104D] We Love ABC
AT_abc104_d [ABC104D] We Love ABC
题目描述
字符串 的 ABC 数 是满足以下所有条件的整数三元组 的个数。
- ( 表示 的长度)
-
A( 表示 从首位开始的第 个字符) -
B -
C
例如,当 ABCBC 时,满足条件的三元组 有 共 个,因此 的 ABC 数为 。
给定一个字符串 ,其中每个字符都是 A、B、C 或 ? 之一。
设 中 ? 的个数为 。将 中的每个 ? 替换为 A、B 或 C 中的任意一个,可以得到 种不同的字符串。请计算这些字符串的 ABC 数之和。
由于这个和可能非常大,请输出其对 取模的结果。
输入格式
输入为以下格式,通过标准输入给出。
输出格式
请输出 种字符串所有 ABC 数之和对 取模的结果。
样例 1
输入
A??C
输出
8
样例 2
输入
ABCBC
输出
3
样例 3
输入
????C?????B??????A???????
输出
979596887
说明/提示
限制条件
- 的每个字符都是
A、B、C或?之一。
样例解释 1
在本例中,,将每个 ? 替换为 A、B 或 C,共可得到 种字符串。每种字符串的 ABC 数如下:
AAAC:AABC:AACC:ABAC:ABBC:ABCC:ACAC:ACBC:ACCC:
这些和为 ,对 取模后输出 。
样例解释 2
当 时,只需输出 本身的 ABC 数对 取模的结果。此字符串与题目描述中的例子相同,其 ABC 数为 。
样例解释 3
在本例中, 种字符串所有 ABC 数之和为 ,对 取模后为 ,输出 。
由 ChatGPT 4.1 翻译