AT_abc104_d.[ABC104D] We Love ABC
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
字符串 T 的 ABC 数 是满足以下所有条件的整数三元组 (i, j, k) 的个数。
- 1 <= i < j < k <= ∣T∣(∣T∣ 表示 T 的长度)
- $T_i = $
A(Ti 表示 T 从首位开始的第 i 个字符) - $T_j = $
B - $T_k = $
C
例如,当 $T = $ ABCBC 时,满足条件的三元组 (i, j, k) 有 (1, 2, 3), (1, 2, 5), (1, 4, 5) 共 3 个,因此 T 的 ABC 数为 3。
给定一个字符串 S,其中每个字符都是 A、B、C 或 ? 之一。
设 S 中 ? 的个数为 Q。将 S 中的每个 ? 替换为 A、B 或 C 中的任意一个,可以得到 3Q 种不同的字符串。请计算这些字符串的 ABC 数之和。
由于这个和可能非常大,请输出其对 109+7 取模的结果。
输入格式
输入为以下格式,通过标准输入给出。
S
输出格式
请输出 3Q 种字符串所有 ABC 数之和对 109+7 取模的结果。
输入输出样例
输入#1
A??C
输出#1
8
输入#2
ABCBC
输出#2
3
输入#3
????C?????B??????A???????
输出#3
979596887
说明/提示
限制条件
- 3 <= ∣S∣ <= 105
- S 的每个字符都是
A、B、C或?之一。
样例解释 1
在本例中,Q=2,将每个 ? 替换为 A、B 或 C,共可得到 3Q=9 种字符串。每种字符串的 ABC 数如下:
AAAC: 0AABC: 2AACC: 0ABAC: 1ABBC: 2ABCC: 2ACAC: 0ACBC: 1ACCC: 0
这些和为 0+2+0+1+2+2+0+1+0=8,对 109+7 取模后输出 8。
样例解释 2
当 Q=0 时,只需输出 S 本身的 ABC 数对 109+7 取模的结果。此字符串与题目描述中的例子相同,其 ABC 数为 3。
样例解释 3
在本例中,3Q 种字符串所有 ABC 数之和为 2291979612924,对 109+7 取模后为 979596887,输出 979596887。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?