AT_kupc2019_d Maximin Game
题目描述
有 $2N$ 张卡片。第 $i$ 张卡片上写有整数 $i$,其中 $1 \leq i \leq 2N$。
千咲和月乃瀬用这些卡片进行如下游戏:
1. 将所有卡片充分洗牌后,平均分成两份,每人各取 $N$ 张作为初始手牌。
2. 游戏共进行 $N$ 轮。在每一轮中,两位玩家各自从手牌中选出数值最小的卡片进行展示。展示的卡片中,数值较大者获胜。展示过的卡片会从各自手牌中移除,后续回合不再使用。
千咲和月乃瀬已经进行了一次这样的游戏。
游戏结果以长度为 $N$ 的只包含 `0` 和 `1` 的字符串 $S$ 给出。对于任意整数 $i\ (1 \leq i \leq N)$,若 $S_i$ 为 `1`,表示千咲赢得了第 $i$ 轮;若 $S_i$ 为 `0`,则表示千咲没有赢得第 $i$ 轮。
请问,作为千咲初始手牌的可能方案有多少种?由于答案可能很大,请输出对 $998244353$ 取模的结果。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $S$
输出格式
输出作为千咲初始手牌的可能方案数,对 $998244353$ 取模。
说明/提示
## 限制条件
- $1 \leq N \leq 10^5$
- $S$ 是长度为 $N$ 的仅包含 `0` 和 `1` 的字符串。
## 样例解释 1
假设千咲的初始手牌为 $1$ 和 $4$,月乃瀬的初始手牌为 $2$ 和 $3$。此时:
- 第 1 轮,千咲出 $1$,月乃瀬出 $2$,月乃瀬获胜。
- 第 2 轮,千咲出 $4$,月乃瀬出 $3$,千咲获胜。
因此,这种初始手牌分配满足给定的游戏结果。
由 ChatGPT 4.1 翻译