题目 20069

数学表达式

查看题解 ↗GitHub ↗如何评测
题号
20069
标签
比赛
来源
2026 普及模拟赛 12 - d

数学表达式

题目描述

小 C 有一个仅包含变量 xx 的数学表达式,由若干 x,+,×x,+,\times 以及一些合法的括号对组成(括号均由小括号表示),运算符都不能省略(不能出现 xx,x(x+x)xx, x(x+x) 这种形式),运算符也不能连续出现(不能有 x+×x+\times)这种形式,并且不包含任何其他的常数或者符号。例如,以下是一个可能的表达式:

x+x×x×(x+(x+x)×x)+(x×x) x+x\times x\times(x+(x+x)\times x)+(x\times x)
而这些表达式均不合法:xx+x×x,  x−x,  x(x+x),  x+3×x,x+×xx+x\times x,\; x-x,\; x(x+x),\; x+3\times x, x+\times。

现在,小 C 把原表达式中的所有 +,×+,\times 都弄丢了,只剩下一个包含 xx 和括号对的字符串 SS。例如,上述合法例子对应的 SS 为:xxx(xxxx)(xx)。

小 C 想要还原出原来的表达式,也就是要插入一些 +,×+,\times 到 SS 中,插入后得到的表达式必须满足以上规则。但这样仍然可以得到很多不同的表达式。幸运的是,小 CC 记得原先的表达式满足把 x=1x=1 带入后算出的值是最大的。因此,你的任务是在每个 xx,x(,)x 的中间插入 + 或者 *,使得把 x=1x=1 带入后算出的值最大,并求出这个最大值。

这个最大值可能很大,你只需要求出它对 998244353998244353 取模的结果。

请注意,本题多测。

输入格式

第一行一个正整数 TT,表示测试数据组数。

接下来 TT 行,每行包含一个字符串 SiS_i,表示原来的表达式删去所有符号所得字符串。

输出格式

共 TT 行,每行一个正整数,表示答案。

样例输入

文本
3
(xx)(x(xx)(xx)(xx(xx)x)xx)
(xx(x(xxx)x))xx
x(x(x(xx)x(xx))xx(xx)x)xx(xx)(xx)

样例输出

文本
46
9
57

以第二个字符串为例,(x+x+(x+(x+x+x)+x))x+x(x+x+(x+(x+x+x)+x))x+x 在 x=1x=1 时的结果为 99。

数据范围

本题共包含 2020 个测试点。对于全部测试数据,1≤T≤5,1≤∣Si∣≤50001\le T \le 5,1\le |S_i|\le 5000,保证所有 SiS_i 均合法。

测试点编号 ∣Si∣≤\lvert S_i \rvert \le 特殊性质
1∼41\sim 4 2020 -
5∼95\sim 9 100100 -
10∼1110\sim 11 50005000 所有 SiS_i 均不包含括号
12∼2012\sim 20 50005000 -

数据下载

题目 20069 的公开数据

正在读取文件列表…

常用命令

题目 20069 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。