#P17337. 【MX-X30-T3】宇宙分解

【MX-X30-T3】宇宙分解

题目描述

你有一个 0101 序列 aa 和两种操作:

  1. 选择 ai<ai+1a_i<a_{i+1} 并删去 ai+1a_{i+1}
  2. 选择 ai<ai+1a_i<a_{i+1} 并交换这两个数。

你要进行若干次这两种操作(可以不进行),求结束时会得到多少种本质不同的序列?

998244353998244353 取模。

输入格式

本题有多组测试。第一行输入一个整数 TT 表示测试组数。

每组测试第一行输入一个整数 nn

下一行输入一个 0101 串,第 ii 个字符是 aia_i

输出格式

包含 TT 行,第 ii 行包含一个整数,表示结束时会得到多少种本质不同的序列。对 998244353998244353 取模。

3
2
01
3
111
3
010
3
1
3

提示

定义 ss 表示每组测试内 aia_i 之和的最大值。定义 NN 表示所有测试中 nn 的和。

测试点编号 NN\le ss\le
141\sim 4 200200
5105\sim 10 10410^4 10310^3
111511\sim 15 10510^5
162016\sim 20 2×1032\times 10^3

对于所有数据,保证 1T1031\le T\le 10^31n,N1051\le n,N\le 10^50s2×1030\le s\le 2\times 10^3