AT_utpc2022_i Which must be deleted?
题目描述
由仅包含 `(`、`)` 的字符串,如果满足以下任一条件,被称为“正确括号序列”:
- 空字符串。
- 存在一个“正确括号序列” $A$,将 `(`、$A$、`)` 按此顺序连接而成的字符串。
- 存在不为空的“正确括号序列” $A,\ B$,将 $A,\ B$ 按此顺序连接而成的字符串。
给你一个长度为 $4N$、仅包含 `(` 和 `)` 的字符串 $S$,以及 $2N$ 个整数对 $(L_i, R_i)\ (1 \leq L_i < R_i \leq 4N)$。其中,$(L_1, L_2, \dots, L_{2N})$ 是 $1,2,\dots,2N$ 的一个排列,$(R_1, R_2, \dots, R_{2N})$ 是 $2N+1,2N+2,\dots,4N$ 的一个排列。
按照 $i=1,2,\dots,2N$ 的顺序,对于每组 $(L_i, R_i)$,可以任选 $S$ 的 $L_i$ 或 $R_i$ 位置打标记。将所有被标记的字符按在 $S$ 中出现的顺序依次读出,得到一个长度为 $2N$ 的字符串 $S'$。
请判断,是否存在一种方式使得 $S'$ 是“正确括号序列”。
请对 $T$ 组测试用例分别作答。
输入格式
输入按以下格式从标准输入读入:
> $T$
> $\mathrm{case}_1$
> $\vdots$
> $\mathrm{case}_T$
每个测试用例的格式如下:
> $N$
> $S$
> $L_1\ R_1$
> $L_2\ R_2$
> $\vdots$
> $L_{2N}\ R_{2N}$
输出格式
请输出 $T$ 行。对于第 $i$ 个测试用例,如果 $S'$ 存在一种构造方式使其成为“正确括号序列”,则输出 `Yes`,否则输出 `No`。
说明/提示
### 样例解释 1
对于第 $1$ 个测试用例,如果选择 $L_1=1$ 位置和 $R_2=4$ 位置,则 $S'$ 为 `()`,它是“正确括号序列”。
对于第 $2$ 个测试用例,无论如何选择,$S'$ 都不可能成为“正确括号序列”。
### 数据范围与约定
- 输入的所有数值均为整数。
- $1 \leq T \leq 1000$
- $1 \leq N \leq 2000$
- $S$ 是长度为 $4N$ 的、仅包含 `(`、`)` 的字符串。
- $1 \leq L_i \leq 2N < R_i \leq 4N$
- $(L_1,L_2,\dots,L_{2N})$ 是 $1,2,\dots,2N$ 的一个排列。
- $(R_1,R_2,\dots,R_{2N})$ 是 $2N+1,2N+2,\dots,4N$ 的一个排列。
- 单次输入内所有测试用例,$N$ 的总和不超过 $2000$。
由 ChatGPT 5 翻译