#28528. Number of Subsequences
Number of Subsequences
题目描述
给定一个仅由小写拉丁字母 "a"、"b"、"c" 和问号 "?" 组成的字符串 。
设字符串 中问号的数量为 。我们将每一个问号替换为 "a"、"b" 或 "c" 中的任意一个字母,这样一共可以得到 个仅包含 "a"、"b"、"c" 的字符串。例如,如果 "ac?b?c",那么可以得到如下字符串: "acabac", "acabbc", "acabcc", "acbbac", "acbbbc", "acbbcc", "accbac", "accbbc", "accbcc" 。
你的任务是统计所有可能得到的字符串中,子序列 "abc" 的总数。由于答案可能非常大,请输出答案对 取模后的结果。
字符串 的一个子序列是指:通过删除 中的若干(可能为零)个字符且不改变剩余字符顺序后得到的序列。例如,字符串 "baacbc" 包含两个 "abc" 子序列,分别是下标为 和 的子序列。
输入格式
第一行输入一个整数 ,表示 的长度,。
第二行输入一个长度为 的字符串 ,仅包含小写拉丁字母 "a"、"b"、"c" 和问号 "?"。
输出格式
输出所有可能得到的字符串中 "abc" 子序列的总数,对 取模后的结果。
6
ac?b?c
24
7
???????
2835
9
cccbbbaaa
0
5
a???c
46
说明/提示
在第一个样例中,可以得到 个字符串:
- "acabac" — 有 个 "abc" 子序列,
- "acabbc" — 有 个 "abc" 子序列,
- "acabcc" — 有 个 "abc" 子序列,
- "acbbac" — 有 个 "abc" 子序列,
- "acbbbc" — 有 个 "abc" 子序列,
- "acbbcc" — 有 个 "abc" 子序列,
- "accbac" — 有 个 "abc" 子序列,
- "accbbc" — 有 个 "abc" 子序列,
- "accbcc" — 有 个 "abc" 子序列。
因此,总共有 个 "abc" 子序列。
相关
在以下作业中: