Bobo has a balanced parenthesis sequence P=p1p2…pnP = p_1p_2\dots p_nP=p1​p2​…pn​ of length n
and q questions.
The i-th question is whether P remains balanced after paip_{a_i}pai​​ and pbip_{b_i}pbi​​ swapped.
Note that questions are individual so that they have no affect on others.
Parenthesis sequence S is balanced if and only if:

  1. S is empty;
  2. or there exists balanced parenthesis sequence A, B such that S = AB;
  3. or there exists balanced parenthesis sequence S’ such that S = (S’).
    输入描述:

The input contains at most 30 sets. For each set:
The first line contains two integers n, q (2≤n≤105,1≤q≤1052 \leq n \leq 10^5, 1 \leq q \leq 10^52≤n≤105,1≤q≤105).
The second line contains n characters p1p2…pnp_1p_2\dots p_np1​p2​…pn​.
The i-th of the last q lines contains 2 integers ai,bia_i, b_iai​,bi​ (1≤ai,bi≤n,ai≠bi1 \leq a_i, b_i \leq n, a_i \neq b_i1≤ai​,bi​≤n,ai​​=bi​).

输出描述:

For each question, output “Yes” if P remains balanced, or “No” otherwise.

示例1
输入
复制

4 2
(())
1 3
2 3

输出
复制

No
Yes

示例2
输入
复制

2 1
()
1 2

输出
复制

No

把左括号赋值为1, 右括号赋值为-1, 交换后求前缀和,若区间内的值都大于等于0就yes,否则为no。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;const int maxn = 1e5 + 10;
int n, m;
char str[maxn];
int sum[maxn];void init()
{for(int i = 1; i <= n; i++){if(str[i] == '(')sum[i] += sum[i - 1] + 1;else if(str[i] == ')')sum[i] += sum[i - 1] - 1;}
}int main()
{while(scanf("%d%d", &n, &m) != EOF){memset(str, 0, sizeof(str));memset(sum, 0, sizeof(sum));scanf("%s", str + 1);init();int l, r;
//      for(int i = 1; i <= n; i++)
//          cout << sum[i] << " ";for(int i = 0; i < m; i++){scanf("%d%d", &l, &r);if(l > r)swap(l, r);int f = 0;if(str[l] == '(' && str[r] == ')')for(int j = l; j < r; j++){if(sum[j] - 2 < 0){f = 1;break;}}if(f)printf("No\n");else printf("Yes\n");}}return 0;
}

G Parenthesis相关推荐

  1. 2016年湖南省第十二届大学生计算机程序设计竞赛

    题目: 任意门 听说这套题目是叉姐出的,感觉呵呵了... 据说现场牌都不够发的!!!只能说给湖南省出的题目太强了,不适合新手去做,当然我这种老手也不见得做的多好,出了3题,赶在了三等首,但是感觉自己被 ...

  2. 湖南省第十届蓝狐网络杯大学生计算机程序设计竞赛,2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解...

    2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解 update10.01 突然发现叉姐把这场的题传到牛客上了,现在大家可以有地方提交了呢. 不知道该干什么所以就来水一篇题解 ...

  3. 2016年湖南省第十二届大学生计算机程序设计竞赛 解题报告

    这次省赛居然出题方居然不是刘汝佳而是换成了叉姐,现场上看到ICPCCAMP这几个字的时候我的内心是血崩的/(ㄒoㄒ)/~~.不过说实话,叉姐的题,有毒!,吸的我根本停不下来~ 先发个做题地址:题目 再 ...

  4. 文件上传之伪Ajax方式上传

    From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...

  5. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

    过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...

  6. gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表

    对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器. 对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件 对于以 .cpp 为扩展名的文件,GCC ...

  7. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  8. C++ 笔记(01)— 环境设置(安装g++、g++ 编译 C++、 生成可执行文件流程、解释器与编译器区别)

    1. g++安装 在 Linux 或者 UNIX 系统上,可以通过下面命令来查看是否安装了 GCC . $ g++ -v 如果已经安装 GNU 编译器,则有以下输出: wohu@wohu:~/C++$ ...

  9. 记录一下g++的编译选项

    假设main.cpp,hello.h,hello.cpp,其中main.cpp调用了hello类中的方法 1 生成hello.so g++ -shared hello.cpp -olibhello.s ...

  10. PCL:自定义创建带颜色的点云保存后rgb是一个很大的数,由x y z rgb解包为x y z r g b

    由于实验需要自己需要从3D相机中读取数据并保存为pcd格式, 下面是一部分读取并保存的代码,以及最后保存结果,但是在保存为pcd的时候发现是这个样子:  (如上代码为PCD文件中的头文件,TYPE中的 ...

最新文章

  1. Clang:LLVM的C语言家族前端
  2. PHP使用文件锁解决高并发问题示例
  3. Linux Red Hat 6.0 配置网卡ip地址和备用ip地址
  4. webpack 阅读笔记
  5. ufw禁止IP访问ubuntu服务器
  6. Linux基本服务命令
  7. 判断服务是否开启,应用是否安装,并安装应用
  8. 快速突破面试算法之数组与矩阵篇
  9. 某品牌电批单机知识总结
  10. 软件测试与软件调试的区别
  11. mac os 下 打开 JXM 文件
  12. 计算机二级excel设置宏,Excel2013中为宏指定快捷键的方法
  13. 苏州大学872专栏介绍
  14. 初中使用计算机教学反思,谈初中信息技术教学反思
  15. Hugging face 的入门使用
  16. 交换机的三种端口类型
  17. 天大的本事,顶不上一张会说话的嘴
  18. QMidi Pro for mac (终极多媒体卡拉OK播放器)
  19. 今夜,我静静地想你!
  20. 美国宇航局研制“刺猬”机器人探索火卫一

热门文章

  1. 姚舜:成年人的崩溃,“我只是想哭一下”
  2. c语言打印星号对勾,Intellij常用快捷键记录
  3. 从一个方向看一个正方体_从一个方向观察一个正方体,最多可以看到几个面
  4. 桌面的计算机图标误删了怎么恢复,删除桌面图标-如何恢复桌面图标不小心将某个程序的桌面图标给删了,怎么恢复呢 爱问知识人...
  5. pytorch模型预测
  6. 技巧:苹果电脑怎么清理缓存文件
  7. 安规X电容和Y电容的作用
  8. vue 加headers_vue上传图片设置headers表头信息
  9. 程序员是如何下载的视频?
  10. 第三十一章 SQL命令 DROP DATABASE