黑鸭的字符串
【题目描述】
黑鸭有一个长度为 $n$ 的由 01? 构成的字符串 $s$ 和一个空字符串 $t$。他会先把每个 ? 独立地变为 0 或 1,然后再进行 $n$ 次操作。每次操作黑鸭会先把 $s$ 拼接到 $t$ 后面,然后从 $s$ 中删去任意一个字符。显然,当他进行完 $n$ 次操作后,$s$ 会变为一个空串。
请你求出最终可能的 $t$ 的种类数,对 $998244353$ 取模。
【输入格式】
第一行一个整数 $n$,表示 $s$ 的长度。
第二行一个长度为 $n$ 的由 01? 构成的字符串,表示 $s$。
【输出格式】
输出一个整数,表示答案对 $998244353$ 取模的结果。
【样例 1 输入】
3
?10
【样例 1 输出】
8
【样例 1 解释】
可能的 $t$ 有 010000,010010,010011,010100,010101,110100,110101,110111 八种。
【样例 2 输入】
10
1101000111
【样例 2 输出】
17524
【样例 3】
【数据范围与提示】
对于 100% 的数据,保证 $3 \leq n \leq 250000$。
| 子任务编号 | 分值 | $n \leq$ | 特殊性质 |
|---|---|---|---|
| $1$ | $10$ | $10$ | |
| $2$ | $10$ | $20$ | |
| $3$ | $10$ | $250000$ | $s$ 仅由?构成 |
| $4$ | $20$ | $100$ | |
| $5$ | $20$ | $5000$ | |
| $6$ | $10$ | $250000$ | $s$ 不包含 |
