CFCF2201E.ABBA Counting

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 nnnn 为偶数)的字符串 TT,该字符串仅包含 'a'、'b' 和 '?' 字符。

请计算有多少个字符串 SS 满足以下条件:

  • S=n|S|=n
  • 对所有 1in1 \le i \le nSiS_i 只能为 'a' 或 'b';
  • 对所有 1in1 \le i \le nTiT_i 不为 '?' 的下标 ii,都有 Si=TiS_i=T_i
  • 存在两个(可能为空的)字符串 AABB,使得 S=A+B+B+AS=A+B+B+A,其中 ++ 表示字符串拼接。

由于答案可能过大,只需输出对 998244353998\,244\,353 取模后的结果。

输入格式

每组测试数据包含多组测试用例。第一行是测试用例个数 tt1t1041 \le t \le 10^4)。
每个测试用例的第一行为一个整数 nn2n4000002 \le n \le 400\,000nn 为偶数)。
第二行为一个长度为 nn 的字符串 TT,只包含 'a'、'b' 和 '?'。

保证所有测试用例中 nn 的总和不超过 400000400\,000

输出格式

每个测试用例输出一行答案,对 998244353998\,244\,353 取模。

输入输出样例

  • 输入#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

说明/提示

对于第五个测试用例,共有 1010 个满足条件的字符串,如下:

  1. "aaaabaaaaaba"
  2. "aaaabbaaabba"
  3. "aaabbaaaabba"
  4. "aaabbbaabbba"
  5. "abaabbbaabba"
  6. "ababbbbabbba"
  7. "baaabaaababa"
  8. "baaababaaaba"
  9. "baaabbaabbba"
  10. "baabbabaabba"
首页