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

    ID: 16651 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>动态规划 DP梦熊比赛

【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 的和。

测试点编号 N≤N\le s≤s\le
1∼41\sim 4 200200
5∼105\sim 10 10410^4 10310^3
11∼1511\sim 15 10510^5
16∼2016\sim 20 2×1032\times 10^3

对于所有数据,保证 1≤T≤1031\le T\le 10^3,1≤n,N≤1051\le n,N\le 10^5,0≤s≤2×1030\le s\le 2\times 10^3。