atcoder#ABC242E. [ABC242E] (∀x∀)

[ABC242E] (∀x∀)

题目描述

T T 個のテストケースについて、次の問題を解いてください。

整数 N N と文字列 S S が与えられるので、以下の条件を全て満たす文字列 X X の数を 998244353 998244353 で割った余りを求めてください。

  • X X は英大文字のみからなる長さ N N の文字列
  • X X は回文
  • 辞書順で X  S X\ \le\ S
    • すなわち、 X=S X=S であるか、辞書順で X X S S より前に来る

输入格式

入力は以下の形式で標準入力から与えられる。

T T case1 \mathrm{case}_1 case2 \mathrm{case}_2 \vdots caseT \mathrm{case}_T

ただし、 casei \mathrm{case}_i i i 個目のテストケースを表す。

各テストケースは以下の形式で与えられる。

N N S S

输出格式

全体で T T 行出力せよ。
i i 行目には i i 個目のテストケースに対する答えを整数として出力せよ。

题目大意

给定正整数 NN 和长度为 NN 的字符串 SS,你的任务是计算有多少个长度为 NN 的回文字符串 XX,使得 XSX \leq S。计算结果对 998244353998244353 取模。SSTT 均只包含大写英文字母。

总共有 TT 组数据。T250000T \leq 250000, N106N \leq 10^6,所有 SS 的字母总数不超过 10610^6

5
3
AXA
6
ABCZAZ
30
QWERTYUIOPASDFGHJKLZXCVBNMQWER
28
JVIISNEOXHSNEAAENSHXOENSIIVJ
31
KVOHEEMSOZZASHENDIGOJRTJVMVSDWW
24
29
212370247
36523399
231364016

提示

制約

  • 1  T  250000 1\ \le\ T\ \le\ 250000
  • N N 1 1 以上 106 10^6 以下の整数
  • ひとつの入力について、含まれるテストケースの N N の総和は 106 10^6 を超えない
  • S S は英大文字のみからなる長さ N N の文字列

Sample Explanation 1

この入力には 5 5 個のテストケースが含まれます。 1 1 個目のテストケース: 問題文中の条件を満たす文字列は AAA, , ABA, , ACA,..., ,..., AXA24 24 個です。 2 2 個目のテストケース: S S が回文であるとは限りません。 3 3 個目のテストケース: 998244353 998244353 で割った余りを求めることに注意してください。