题目描述
给定一个长度为 n、仅包含字符 0、1 和 ? 的字符串 S。
需要计算满足下列条件的字符串序列
(T0,T1,T2,…,Tn)
的数量:
- Ti 的长度恰好为 i,并且只包含字符
0 和 1;
- 对于每个 i∈[1,n],字符串 Ti 可以由 Ti−1 插入一个字符
0 或 1 得到;
- 对于最终字符串 Tn 的每一位 i:
- 若 Si 为
0 或 1,则必须满足 Tn,i=Si;
- 若 Si 为
?,则 Tn,i 可以为 0 或 1。
求方案数对
998244353
取模后的结果。
其中,T0 是空字符串。
输入格式
第一行包含一个整数 n。
第二行包含一个长度为 n、仅由 0、1 和 ? 构成的字符串 S。
输出格式
输出一行一个整数,表示满足条件的方案数量对 998244353 取模后的结果。
样例 1
输入
3
0?1
输出
6
样例解释
满足条件的 6 种方案分别为:
- T1=0, T2=00, T3=001;
- T1=0, T2=01, T3=001;
- T1=1, T2=01, T3=001;
- T1=1, T2=11, T3=011;
- T1=0, T2=01, T3=011;
- T1=1, T2=01, T3=011。
样例 2
输入
5
0111?
输出
24
数据范围与子任务
对于全部测试数据:
1≤n≤5×105.
| 子任务 |
n 不超过 |
特殊性质 |
分值 |
| 1 |
5 |
无 |
10 |
| 2 |
15 |
| 3 |
5×105 |
A |
5 |
| 4 |
B |
25 |
| 5 |
5×102 |
无 |
10 |
| 6 |
5×103 |
| 7 |
2×105 |
15 |
| 8 |
5×105 |
特殊性质 A
字符串 S 仅包含字符 ?。
特殊性质 B
字符串 S 中字符 0 和 1 的出现次数之和不超过 10。