题目描述
你有一个 01 序列 a 和两种操作:
- 选择 ai<ai+1 并删去 ai+1。
- 选择 ai<ai+1 并交换这两个数。
你要进行若干次这两种操作(可以不进行),求结束时会得到多少种本质不同的序列?
对 998244353 取模。
输入格式
本题有多组测试。第一行输入一个整数 T 表示测试组数。
每组测试第一行输入一个整数 n。
下一行输入一个 01 串,第 i 个字符是 ai。
输出格式
包含 T 行,第 i 行包含一个整数,表示结束时会得到多少种本质不同的序列。对 998244353 取模。
3
2
01
3
111
3
010
3
1
3
提示
定义 s 表示每组测试内 ai 之和的最大值。定义 N 表示所有测试中 n 的和。
| 测试点编号 |
N≤ |
s≤ |
| 1∼4 |
200 |
| 5∼10 |
104 |
103 |
| 11∼15 |
105 |
| 16∼20 |
2×103 |
对于所有数据,保证 1≤T≤103,1≤n,N≤105,0≤s≤2×103。