#P16958. [SCCPC 2026] 括号序列

    ID: 19042 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>递推四川组合数学2026省赛/邀请赛

[SCCPC 2026] 括号序列

题目描述

对于字符串 SSTT,定义 SS 的字典序小于 TT 当且仅当以下三者之一成立:

  • SS 为空串(长度为 00),TT 为非空串;
  • S,TS,T 为非空串,且 S[0]S[0] 字典序小于 T[0]T[0],这里 S[0],T[0]S[0],T[0] 表示 S,TS,T 的首个字符;
  • S,TS,T 为非空串,且 S[0]=T[0]S[0]=T[0]S[1,]S[1,\cdots] 字典序小于 T[1,]T[1,\cdots],这里 S[1,],T[1,]S[1,\cdots],T[1,\cdots] 表示 S,TS,T 删除首个字符得到的字符串。

对于由 {‘(’,‘)’}\texttt{\{`(',`)'\}} 组成的括号串 SS,称其为可匹配的,当且仅当以下三者之一成立:

  • SS 是空串(长度为 00);
  • S=(A)S = (A),其中 AA 是可匹配的括号串;
  • S=ABS = AB,其中 AABB 都是可匹配的非空括号串。

下面给出一个可匹配的括号串 TT,求有多少个括号串 SS 满足以下四个条件:

  • SS 不是空串(长度大于 00);
  • SS 是可匹配的;
  • S=TS=T,或 SS 的字典序小于 TT
  • SS 的长度小于等于 TT 的长度。

注意,符号 ‘(’\texttt{`('} 的字典序比 ‘)’\texttt{`)'} 小。

本题采用多组测试。答案可能很大,请输出结果对 998244353998244353 取模后的余数。

输入格式

每个测试点第一行包含一个正整数 tt1t5×1051 \le t \le 5\times 10^5),表示数据组数。

接下来 tt 组数据,每组数据第一行为一个偶数 nn2n1062\le n\le 10^6),表示字符串 TT 的长度。

第二行为一个长度为 nn 的括号串,其字符集为 {‘(’,‘)’}\texttt{\{`(',`)'\}}。这里保证 TT 是可匹配的。

保证单个测试点内所有括号串的长度总和不超过 10610^6

输出格式

输出 tt 行,第 ii 行表示第 ii 组数据的答案对 998244353998244353 取模后的余数。

6
2
()
4
()()
4
(())
6
()(())
8
(())(())
20
((()())(()())(()()))
1
3
1
6
11
7346

提示

对于第四组数据,有以下六个符合要求的 SS

  • ()\texttt{()}
  • (())\texttt{(())}
  • ()(())\texttt{()(())}
  • (())()\texttt{(())()}
  • ((()))\texttt{((()))}
  • (()())\texttt{(()())}