CFCF2201E.ABBA Counting
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n(n 为偶数)的字符串 T,该字符串仅包含 'a'、'b' 和 '?' 字符。
请计算有多少个字符串 S 满足以下条件:
- ∣S∣=n;
- 对所有 1≤i≤n,Si 只能为 'a' 或 'b';
- 对所有 1≤i≤n 且 Ti 不为 '?' 的下标 i,都有 Si=Ti;
- 存在两个(可能为空的)字符串 A 和 B,使得 S=A+B+B+A,其中 + 表示字符串拼接。
由于答案可能过大,只需输出对 998244353 取模后的结果。
输入格式
每组测试数据包含多组测试用例。第一行是测试用例个数 t(1≤t≤104)。
每个测试用例的第一行为一个整数 n(2≤n≤400000,n 为偶数)。
第二行为一个长度为 n 的字符串 T,只包含 'a'、'b' 和 '?'。
保证所有测试用例中 n 的总和不超过 400000。
输出格式
每个测试用例输出一行答案,对 998244353 取模。
输入输出样例
输入#1
6 2 a? 2 ?? 4 a??a 4 ab?? 12 ??a?b??a??ba 12 ?ab???b??a??
输出#1
1 2 2 2 10 22
说明/提示
对于第五个测试用例,共有 10 个满足条件的字符串,如下:
- "aaaabaaaaaba"
- "aaaabbaaabba"
- "aaabbaaaabba"
- "aaabbbaabbba"
- "abaabbbaabba"
- "ababbbbabbba"
- "baaabaaababa"
- "baaababaaaba"
- "baaabbaabbba"
- "baabbabaabba"