AT_agc060_a [AGC060A] No Majority
题目描述
当且仅当一个仅由小写英文字母组成的字符串 $x$ 满足以下条件时,我们称 $x$ 为**好**字符串。
- $x$ 的任意长度不少于 $2$ 的(连续)子串都满足以下条件:
- 在该子串中不存在占据多数的字符。
例如,`acbca` 不是好字符串,因为其子串 `cbc` 中字符 `c` 占据了多数。
给定一个长度为 $N$ 的字符串 $S$,$S$ 由小写英文字母和 `?` 组成。你可以将每个 `?` 替换为任意小写英文字母。请问有多少种替换方式可以使 $S$ 成为好字符串?请将答案对 $998244353$ 取模后输出。
输入格式
输入从标准输入中给出,格式如下:
> $N$ $S$
输出格式
请输出答案。
说明/提示
### 限制条件
- $2 \leq N \leq 5000$
- $S$ 是一个仅包含小写英文字母和 `?` 的长度为 $N$ 的字符串
### 样例解释 1
除了 `aab` 和 `abb` 以外的所有方式都满足条件。
由 ChatGPT 4.1 翻译