Logo 邂逅编程之美

UOJ

时间限制:2 s 空间限制:512 MB
统计

黑鸭的字符串

【题目描述】

黑鸭有一个长度为 $n$ 的由 01? 构成的字符串 $s$ 和一个空字符串 $t$。他会先把每个 ? 独立地变为 01,然后再进行 $n$ 次操作。每次操作黑鸭会先把 $s$ 拼接到 $t$ 后面,然后从 $s$ 中删去任意一个字符。显然,当他进行完 $n$ 次操作后,$s$ 会变为一个空串。

请你求出最终可能的 $t$ 的种类数,对 $998244353$ 取模。

【输入格式】

第一行一个整数 $n$,表示 $s$ 的长度。

第二行一个长度为 $n$ 的由 01? 构成的字符串,表示 $s$。

【输出格式】

输出一个整数,表示答案对 $998244353$ 取模的结果。

【样例 1 输入】

3
?10

【样例 1 输出】

8

【样例 1 解释】

可能的 $t$ 有 010000010010010011010100010101110100110101110111 八种。

【样例 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$ 不包含