#ABC223F. 括号检查

括号检查

括号检查

题目描述

将满足以下条件之一的字符串定义为正确的括号序列。

  • 它是空字符串。
  • 它是某个正确的括号序列 AA 按顺序连接 (、AA、) 得到的字符串。
  • 它是某个正确的括号序列 AABB 按顺序连接 AABB 得到的字符串。

我们有一个长度为 NN、由 ( 和 ) 构成的字符串 SS

给定 QQ 个查询 $\text{Query}_1,\text{Query}_2,\ldots,\text{Query}_Q$,按顺序处理它们。查询有两种,格式和内容如下。

1 l r:交换 SS 的第 ll 个字符和第 rr 个字符。

2 l r:判断从第 ll 个字符到第 rr 个字符的连续子串是否为正确的括号序列。

输入格式

输入按以下格式从标准输入给出:

NN QQ
SS
Query1\text{Query}_1
Query2\text{Query}_2
\vdots
QueryQ\text{Query}_Q

输出格式

对每个格式为 2 l r 的查询,如果该连续子串是正确的括号序列则输出 Yes,否则输出 No,每个查询输出占一行。

样例

5 3
(())(
2 1 4
2 1 2
2 4 5
Yes
No
No

第一个查询中,(()) 是正确的括号序列。

第二个查询中,(( 不是正确的括号序列。

第三个查询中,)( 不是正确的括号序列。

5 3
(())(
2 1 4
1 1 4
2 1 4
Yes
No

第一个查询中,(()) 是正确的括号序列。

第二个查询中,SS 变为 )()((。

第三个查询中,)()( 不是正确的括号序列。

8 8
(()(()))
2 2 7
2 2 8
1 2 5
2 3 4
1 3 4
1 3 5
1 1 4
1 6 8
Yes
No
No

数据范围

  • 1N,Q2×1051 \leq N,Q \leq 2 \times 10^5
  • SS 是长度为 NN、由 ( 和 ) 构成的字符串。
  • 1l<rN1 \leq l \lt r \leq N
  • N,Q,l,rN,Q,l,r 均为整数。
  • 每个查询的格式为 1 l r 或 2 l r。
  • 至少存在一个格式为 2 l r 的查询。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
2285
类型
传统题
Time Limit
3000ms
Memory Limit
1024MiB
上传者
标签