AT_arc171_f [ARC171F] Both Reversible

题目描述

当字符串 $T$ 满足以下条件时,称 $T$ 为**好字符串**。 - 存在一组字符串 $(A, B)$,满足以下所有条件: - $A$ 和 $B$ 都非空。 - $A + B = T$。 - $A + \mathrm{rev}(B)$ 和 $\mathrm{rev}(A) + B$ 都是回文串。 这里,$A + B$ 表示将字符串 $A$ 和字符串 $B$ 按顺序连接得到的新字符串。 此外,$\mathrm{rev}(A)$ 表示将字符串 $A$ 的字符顺序反转得到的新字符串。 给定一个由小写英文字母和 `?` 组成、长度为 $N$ 的字符串 $S$。 将 $S$ 中的每个 `?` 替换为小写英文字母的方法共有 $26^{(\text{? 的个数})}$ 种,其中有多少种替换后得到的字符串是好字符串?请输出方案数对 $998244353$ 取模的结果。

输入格式

输入通过标准输入给出,格式如下: > $N$ $S$

输出格式

请输出满足题意的替换方案数对 $998244353$ 取模的结果。

说明/提示

### 限制条件 - $2 \leq N \leq 5 \times 10^4$ - $S$ 是由小写英文字母和 `?` 组成的长度为 $N$ 的字符串 ### 样例解释 1 字符串 `abab` 是好字符串。因为当 $A = $ `ab`,$B = $ `ab` 时,$A + B = $ `abab`,且 $A + \mathrm{rev}(B) = $ `abba` 和 $\mathrm{rev}(A) + B = $ `baab` 都是回文串。因此,$S$ 中 `?` 替换后能得到好字符串的方案只有 `abab` 这一种。 由 ChatGPT 4.1 翻译