CF2201E ABBA Counting
题目描述
给定一个长度为 $n$($n$ 为偶数)的字符串 $T$,该字符串仅包含 'a'、'b' 和 '?' 字符。
请计算有多少个字符串 $S$ 满足以下条件:
- $|S|=n$;
- 对所有 $1 \le i \le n$,$S_i$ 只能为 'a' 或 'b';
- 对所有 $1 \le i \le n$ 且 $T_i$ 不为 '?' 的下标 $i$,都有 $S_i=T_i$;
- 存在两个(可能为空的)字符串 $A$ 和 $B$,使得 $S=A+B+B+A$,其中 $+$ 表示字符串拼接。
由于答案可能过大,只需输出对 $998\,244\,353$ 取模后的结果。
输入格式
每组测试数据包含多组测试用例。第一行是测试用例个数 $t$($1 \le t \le 10^4$)。
每个测试用例的第一行为一个整数 $n$($2 \le n \le 400\,000$,$n$ 为偶数)。
第二行为一个长度为 $n$ 的字符串 $T$,只包含 'a'、'b' 和 '?'。
保证所有测试用例中 $n$ 的总和不超过 $400\,000$。
输出格式
每个测试用例输出一行答案,对 $998\,244\,353$ 取模。
说明/提示
对于第五个测试用例,共有 $10$ 个满足条件的字符串,如下:
1. "aaaabaaaaaba"
2. "aaaabbaaabba"
3. "aaabbaaaabba"
4. "aaabbbaabbba"
5. "abaabbbaabba"
6. "ababbbbabbba"
7. "baaabaaababa"
8. "baaababaaaba"
9. "baaabbaabbba"
10. "baabbabaabba"
由 ChatGPT 5 翻译