#P14761. [Opoi 2025] CCD 的序列
[Opoi 2025] CCD 的序列
题目描述
以下关于括号序列和括号匹配的定义跟其他题没什么区别,知道的可以跳过。
括号序列是一个只包含 和 的字符串。
定义一个括号序列是合法的,当且仅当它为下列三种之一:
- 空串是合法的。
- 如果字符串 是合法的,则 也是合法的。
- 如果字符串 和 是合法的,则 也是合法的。
一个合法括号序列中,一个括号是另一个括号所匹配的括号,当且仅当两个括号之间是一个合法的括号序列,且两个括号方向相反。可以证明,一个括号所匹配的括号是唯一的。
定义一个括号的匹配发生变更当且仅当它所匹配的括号变更。
你有一个括号序列 。初始 为空,下标从 开始。
你要进行 次操作,操作之间不独立。
每次操作给你两个数 ,表示同时往 的 之间插入左括号、往 的 之间插入右括号( 或 为 表示在开头插入,为 表示在末尾插入, 时左括号插在右括号前面)。
可以证明,每次操作完后这个括号序列都是合法的。每次操作完后你需要求这次操作导致匹配发生变更的括号数(不包括新增加的两个括号)。
输入格式
第一行一个数,表示 。
接下来 行,每行两个数 ,表示一次操作。
输出格式
行,每行一个整数。第 行表示第 次操作导致匹配变更的括号数。
5
0 0
0 0
0 2
2 5
1 2
0
0
0
6
2
提示
样例解释
以下标红的表示新增的括号,蓝色表示当次操作导致匹配发生变更的括号。
- 第一次操作后括号序列变为 。
- 第二次操作后括号序列变为 。
- 第三次操作后括号序列变为 。
- 第四次操作后括号序列变为 。
- 第五次操作后括号序列变为 。
数据范围与约定
本题采用捆绑测试。
$$\def\arraystretch{1.2} \begin{array}{|c|c|c|} \hline \begin{array}{c} \tt{subtask}\\\hline 1\\\hline 2\\\hline 3\\\hline \end{array} & \begin{array}{c} n\\\hline \le 10\\\hline \le 10^{3}\\\hline \le 2\times10^{5}\\ \end{array} & \begin{array}{c} \tt{pts}\\\hline 20\\\hline 30\\\hline 50\\\hline \end{array} \\\hline \end{array}$$对于所有数据,,。