AT_abc428_c [ABC428C] Brackets Stack Query

题目描述

当且仅当字符串 $T$ 满足以下条件时,被称为“好括号序列”: - $T$ 可以通过重复以下操作零次或多次变成空字符串: - 选择 $T$ 中包含的子串 `()`,并将其删除。 例如,`()`, `(()())` 以及空字符串都是好括号序列,而 `)()(` 和 `)))` 不是好括号序列。 现在有一个字符串 $S$,初始时 $S$ 为空字符串。依次处理 $Q$ 个查询。每次查询后,判断 $S$ 当前是否为好括号序列。查询有以下两种类型: - `1 c`:给定一个字符 $c$,$c$ 只可能是 `(` 或 `)`。将 $c$ 添加到 $S$ 的末尾。 - `2`:删除 $S$ 的最后一个字符。保证此时 $S$ 不为空。

输入格式

输入按如下格式从标准输入给出,其中 $\mathrm{query}_i$ 表示第 $i$ 次查询。 > $Q$ $\mathrm{query}_1$ $\mathrm{query}_2$ $\vdots$ $\mathrm{query}_Q$ 每个查询有以下两种格式之一: > $1\ c$ > $2$

输出格式

输出共 $Q$ 行。第 $i$ 行输出在处理完第 $i$ 次查询后 $S$ 是否为好括号序列:若是输出 `Yes`,否则输出 `No`。

说明/提示

### 样例解释 1 第 $1$ 次查询后 $S$ 为 `(`,不是好括号序列。 第 $2$ 次查询后 $S$ 为空字符串,是好括号序列。 第 $3$ 次查询后 $S$ 为 `(`,不是好括号序列。 第 $4$ 次查询后 $S$ 为 `()`,是好括号序列。 第 $5$ 次查询后 $S$ 为 `(`,不是好括号序列。 第 $6$ 次查询后 $S$ 为 `((`,不是好括号序列。 第 $7$ 次查询后 $S$ 为 `(()`,不是好括号序列。 第 $8$ 次查询后 $S$ 为 `(())`,是好括号序列。 ### 数据范围 - $1 \leq Q \leq 8 \times 10^5$ - 类型 $1$ 查询中的 $c$ 仅为 `(` 或 `)`。 - 保证类型 $2$ 查询时 $S$ 非空。 - $Q$ 为整数。 由 ChatGPT 5 翻译