#k. Parenthesis Checking
Parenthesis Checking
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题面翻译
给出一个括号串, 次以下两种操作:
- 输入 ,代表交换第 和第 个位置上的字符
- 输入 ,判断区间 子串是否是合法括号序列
题目描述
以下のいずれかの条件を満たす文字列を正しい括弧列と定義します。
- 空文字列
- ある正しい括弧列 が存在して、
(
, ,)
をこの順に連結した文字列 - ある空でない正しい括弧列 , が存在して、, をこの順に連結した文字列
(
と )
のみからなる長さ の文字列 があります。
個のクエリ が与えられるので、順番に処理してください。クエリには 種類があり、入力形式とクエリの内容は以下の通りです。
1 l r
: の 文字目と 文字目を入れ替える。2 l r
: の 文字目から 文字目までの連続部分文字列が正しい括弧列であるか判定する。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
2 l r
の形式の各クエリに対して、連続部分文字列が正しい括弧列である場合 Yes
、そうでない場合 No
と出力し、改行せよ。
样例 #1
样例输入 #1
5 3
(())(
2 1 4
2 1 2
2 4 5
样例输出 #1
Yes
No
No
样例 #2
样例输入 #2
5 3
(())(
2 1 4
1 1 4
2 1 4
样例输出 #2
Yes
No
样例 #3
样例输入 #3
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
样例输出 #3
Yes
No
No
提示
制約
- は
(
と)
のみからなる長さ の文字列 - はいずれも整数
- 各クエリは
1 l r
、2 l r
のいずれかの形式で与えられる。 2 l r
の形式のクエリは つ以上与えられる。
Sample Explanation 1
つ目のクエリにおいて、(())
は**正しい括弧列**です。 つ目のクエリにおいて、((
は**正しい括弧列**ではありません。 つ目のクエリにおいて、)(
は**正しい括弧列**ではありません。
Sample Explanation 2
つ目のクエリにおいて、(())
は**正しい括弧列**です。 つ目のクエリによって、 は )()((
となります。 つ目のクエリにおいて、)()(
は**正しい括弧列**ではありません。
北辰OI提高组第2周序列问题课后练习题👍
- Status
- Done
- Rule
- IOI
- Problem
- 44
- Start at
- 2024-1-7 16:00
- End at
- 2024-2-18 8:00
- Duration
- 1000 hour(s)
- Host
- Partic.
- 15