P12723 [KOI 2021 Round 2] 括号值比较
题目背景
试题来源:。中文翻译做了少量本土化修改。
按照[署名—非商业性使用—相同方式共享 4.0 协议国际版](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans)进行授权。
题目描述
使用左括号 `(` 和右括号 `)` 构成的字符串中,所谓“正确括号序列”定义如下:
- 仅包含一对括号的字符串 `()` 是一个正确的括号序列。
- 若 $X$ 是一个正确的括号序列,则用括号将 $X$ 包起来形成的 $(X)$ 也是一个正确的括号序列。
- 若 $X$ 和 $Y$ 都是正确的括号序列,则将它们连接而成的 $XY$ 也是一个正确的括号序列。
- 所有正确的括号序列都只能通过以上三条规则构造出来。
例如,`((()(())))` 和 `(())()()` 是正确的括号序列,而 `(()` 或 `)((()()` 都不是正确的括号序列。
对于一个正确的括号序列 $X$,我们定义其括号值 $f[X]$,具体如下:
- $f[()] = 1$;
- 若 $X$ 是一个正确的括号序列,则 $f[(X)] = 2 \times f[X]$;
- 若 $X$ 和 $Y$ 是正确的括号序列,则 $f[XY] = f[X] + f[Y]$。
我们来看几个例子:
- $f[()] = 1$;
- $f[(())] = 2 \times f[()] = 2 \times 1 = 2$;
- $f[()()] = f[()] + f[()] = 1 + 1 = 2$;
- $f[()()()] = f[()] + f[()()] = 1 + 2 = 3$;
- $f[(()())] = 2 \times f[()()] = 2 \times 2 = 4$;
- $f[((()))] = 2 \times f[(())] = 2 \times 2 = 4$;
- $f[()(())] = f[()] + f[(())] = 1 + 2 = 3$;
- $f[(()())()(())] = f[(()())] + f[()(())] = 4 + 3 = 7$。
你的任务是读取两个正确的括号序列 $A$ 和 $B$,比较它们的括号值 $f[A]$ 与 $f[B]$。
也就是说,判断 $f[A] = f[B]$、$f[A] < f[B]$ 还是 $f[A] > f[B]$。
一个输入中会包含 $T$ 个测试用例。
输入格式
第一行包含一个整数 $T$,表示测试用例的个数。
接下来的 $T$ 个测试用例中,每个测试用例如下两行组成:
- 第一行为括号序列 $A$;
- 第二行为括号序列 $B$。
输出格式
对于每个测试用例,输出一行结果:
- 若 $f[A] = f[B]$,输出等号 `=`;
- 若 $f[A] < f[B]$,输出小于号 ` f[B]$,输出大于号 `>`。
说明/提示
**样例 1 说明**
$f[A] = f[(())] = 2$,$f[B] = f[()()] = 2$,因此 $f[A] = f[B]$。
**样例 2 说明**
$f[A] = f[()()()] = 3$,$f[B] = f[(()())] = 4$,因此 $f[A] < f[B]$。
**样例 3 说明**
- 第一个测试用例中,$f[A] = f[((()))] = 4$,$f[B] = f[()(())] = 3$,因此 $f[A] > f[B]$。
- 第二个测试用例中,$f[A] = f[(((())))] = 8$,$f[B] = f[()()()()()] = 5$,因此 $f[A] > f[B]$。
**约束条件**
- $1 \leq T \leq 10$
- $A$ 和 $B$ 都是正确的括号序列。
- 一个输入中所有测试用例中 $A$ 的总长度之和不超过 $3\times10^6$。
- 一个输入中所有测试用例中 $B$ 的总长度之和不超过 $3\times10^6$。
**子任务**
1. ($3$ 分)$A$ 和 $B$ 的长度都不超过 $6$。
2. ($23$ 分)$A$ 和 $B$ 的长度都不超过 $50$。
3. ($13$ 分)
- 括号数量相等,且所有右括号都出现在所有左括号之后的括号序列,称为“简单括号序列”。
- 例如 `()`、`(())`、`((()))`、`(((((())))))` 都是简单括号序列。
- $A$ 和 $B$ 都是由长度各不相同的多个简单括号序列拼接而成的。
- 比如 `()(())`、`(((())))()((()))` 是符合的例子。
- `(())()(())` 也是由简单括号序列拼接而成,但因为包含了两段长度相同的简单括号序列 `(())`,因此在此子任务中不会出现这种情况。
4. ($61$ 分)无额外约束条件。