AT_utpc2022_n 01 String Game
题目描述
给定一个整数 $N$,以及一个仅由 `0` 和 `1` 组成的、长度为 $N$ 的字符串 $T$。有一个仅由 `0` 和 `1` 组成的、长度为 $2N$ 的字符串 $S = s_1 s_2 \ldots s_{2N}$。Alice 和 Bob 使用 $S$ 与 $T$ 进行游戏。两人轮流操作,从 Alice 开始,直到 $S$ 的所有字符都被标记完为止:
- 挑选一个 $1 \le i \le 2N$ 且 $s_i$ 位置还未被标记的下标 $i$。然后:
- 若是 Alice 的回合,将该位标记为 `o`。
- 若是 Bob 的回合,将该位标记为 `x`。
游戏结束后,只读取所有被标记为 `o` 的下标,按从左到右顺序拼接,组成一个长度为 $N$ 的字符串。如果这个字符串在字典序上大于等于 $T$,则 Alice 获胜;否则 Bob 获胜。
所有可能作为初始字符串 $S$ 的情况一共有 $2^{2N}$ 种。请计算,在两人都采取最优策略、各自努力争取胜利的情况下,Alice 能获胜的 $S$ 有多少种。将答案对 $998244353$ 取模后输出。
输入格式
输入以以下格式通过标准输入给出。
> $N$ $T$
输出格式
输出一行,表示答案。
说明/提示
### 样例解释 1
所有由 `0` 或 `1` 组成的长度为 $2$ 的字符串都符合。
### 样例解释 2
仅有 `01`、`10`、`11` 这 $3$ 种情况符合条件。
### 约束条件
- $N$ 是整数
- $1 \leq N \leq 2 \times 10^5$
- $T$ 是仅由 `0`、`1` 组成的长度为 $N$ 的字符串。
由 ChatGPT 5 翻译