#29. 表达式
表达式
题目描述
一个程序由一系列指令组成,每条指令都具有以下形式之一:
- ,其中 是一个 范围内的一位数;
- ,其中 是一个表示变量名称的字符串。一个程序中出现的所有的变量名均不相同。
程序执行的结果定义对表达式 依次应用每条指令后得到的表达式。
例如,执行程序 得到的结果是表达式 。
不同的程序执行后可能会得到相同的表达式;例如,执行 也会得到表达式 。
Alice 和 Bob 各有一个 ()条指令的程序。他们将交错这些程序的指令以制造一个 条指令的新程序。注意有 种方法可以做到这一点,但并非所有这样的程序在执行后都会得到不同的表达式。
计算执行 Alice 和 Bob 的交错程序可能得到的不同表达式的数量,对 取模。
每个测试用例包含 ()个需要独立求解的子测试用例。输入保证所有子测试用例中的 之和不超过 。
输入格式
输入的第一行包含 ,为子测试用例的数量。
每个子测试用例的第一行包含 。
每个子测试用例的第二行包含 Alice 的程序,用一个长为 的字符串表示。每个字符是一个一位数 ,表示类型 1 的一条指令,或字符 ,表示类型 2 的一条指令。
每个子测试用例的第三行包含 Bob 的程序,格式与 Alice 的程序相同。
在一个子测试用例中,所有指令内的变量名均不相同。注意在这里没有给出它们的实际名称,这是由于它们并不会影响答案。
输出格式
输出通过执行 Alice 和 Bob 的交错程序可能得到的不同表达式的数量,对 取模。
样例 #1
样例输入 #1
4
1
0
1
3
12+
+02
3
0++
++9
4
5+++
+6+1
样例输出 #1
1
3
9
9
提示
【样例解释】
对于第一个子测试用例,两个可以制造的交错程序为 和 。它们执行后均会得到表达式 。
对于第二个子测试用例,执行 和 的交错程序可以得到表达式 , 和 之一。
样例2见文件
【测试点性质】
- 测试点 1 满足 。
- 测试点 2-4 中,所有 之和不超过 。
- 测试点 5-7 中,所有 之和不超过 。
- 测试点 8-15 没有额外限制。
相关
在下列比赛中: