Parenthesis
Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu
Description
Input
Output
Sample Input
4 2
(())
1 3
2 3
2 1
()
1 2
Sample Output
No
Yes
No
Hint
1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<queue>
5 #include<stdlib.h>
6 #include<string.h>
7 using namespace std;
8 char str[100005];
9 int tree[100005*4];
10 int ans[100005];
11 void build(int l,int r,int k);
12 int ask(int l,int r,int k,int nn,int mm);
13 int main(void)
14 {
15 int n,m;
16 while(scanf("%d %d",&n,&m)!=EOF)
17 {
18 scanf("%s",str);
19 int l = strlen(str);
20 ans[0] = 0;
21 for(int i = 0; i < l; i++)
22 {
23 if(str[i] == '(')
24 {
25 ans[i+1] = 1;
26 }
27 else ans[i+1] = -1;
28 }
29 for(int i = 1; i <= l; i++)
30 {
31 ans[i] = ans[i] + ans[i-1];
32 }
33 build(1,l,0);
34 while(m--)
35 {
36 int x,y;
37 scanf("%d %d",&x,&y);
38 if(x > y)swap(x,y);
39 if(str[x-1]==str[y-1]||str[x-1]==')')
40 {
41 printf("Yes\n");
42 }
43 else
44 {
45 int ak = ask(x,y-1,0,1,l);
46 if(ak<2)
47 printf("No\n");
48 else printf("Yes\n");
49 }
50 }
51 }return 0;
52 }
53 void build(int l,int r,int k)
54 {
55 if(l == r)
56 {
57 tree[k] = ans[l];
58 }
59 else
60 {
61 build(l,(l+r)/2,2*k+1);
62 build((l+r)/2+1,r,2*k+2);
63 tree[k] = min(tree[2*k+1],tree[2*k+2]);
64 }
65 }
66 int ask(int l,int r,int k,int nn,int mm)
67 {
68 if(nn>r||mm<l)
69 {
70 return 1e9;
71 }
72 else if(l<=nn&&r>=mm)
73 {
74 return tree[k];
75 }
76 else
77 {
78 int x = ask(l,r,2*k+1,nn,(nn+mm)/2);
79 int y = ask(l,r,2*k+2,(nn+mm)/2+1,mm);
80 return min(x,y);
81 }
82 }
Parenthesis的更多相关文章
- 2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)
原题链接 http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 Description Bobo has a balanced parenthes ...
- 湖南省第十二届大学生计算机程序设计竞赛 G Parenthesis
1809: Parenthesis Description Bobo has a balanced parenthesis sequence P=p1 p2…pn of length n and q ...
- 2016年省赛G题, Parenthesis
Problem G: Parenthesis Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 398 Solved: 75[Submit][Status ...
- HDU 5831 Rikka with Parenthesis II(六花与括号II)
31 Rikka with Parenthesis II (六花与括号II) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536 ...
- CSU 1809 Parenthesis(线段树+前缀和)
Parenthesis Problem Description: Bobo has a balanced parenthesis sequence P=p1 p2-pn of length n and ...
- HDU 5831 Rikka with Parenthesis II (栈+模拟)
Rikka with Parenthesis II 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5831 Description As we kno ...
- sre_constants.error: unbalanced parenthesis
Traceback (most recent call last): File "androidmarket82.py", line 108, in <module> ...
- BZOJ3300: [USACO2011 Feb]Best Parenthesis
3300: [USACO2011 Feb]Best Parenthesis Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 89 Solved: 42 ...
- hdu_5831_Rikka with Parenthesis II(模拟)
题目链接:hdu_5831_Rikka with Parenthesis II 题意: 给你一些括号的排列,必须交换一次,能不能将全部的括号匹配 题解: 模拟一下括号的匹配就行了,注意要特判只有一对括 ...
- [LeetCode] Valid Parenthesis String 验证括号字符串
Given a string containing only three types of characters: '(', ')' and '*', write a function to chec ...
随机推荐
- 数据库(database)介绍
0.数据定义:除了文本类型的数据,图像.音乐.声音都是数据. 数据分类:结构化数据.非结构化数据.1.数据库定义:"电子化的文件柜","数据仓库".数据库是一个 ...
- 数仓:解读 NameNode 的 edits 和 fsimage 文件内容
一.edits 文件 一)文件组成 一个edits文件记录了一次写文件的过程,该过程被分解成多个部分进行记录:(每条记录在hdfs中有一个编号) 每一个部分为: '<RECORD>...& ...
- A Child's History of England.22
CHAPTER 8 ENGLAND UNDER WILLIAM THE FIRST, THE NORMAN CONQUEROR Upon the ground where the brave Haro ...
- Shell学习(十)——du、df命令
一.du 命令 1.命令格式: du [选项][文件] 2.命令功能: 显示每个文件和目录的磁盘使用空间. 3.命令参数: -a或-all 显示目录中个别文件的大小. -b或-bytes 显示目录或文 ...
- Shell学习(八)——dd命令
一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: 1. ...
- 4.3 rust func closure
fn add_one_v1 (x: u32) -> u32 { x + 1 } let add_one_v2 = |x: u32| -> u32 { x + 1 }; let add_on ...
- 转 MessageDigest来实现数据加密
转自 https://www.cnblogs.com/androidsuperman/p/10296668.html MessageDigest MessageDigest 类为应用程序提供信息摘要算 ...
- Fragment以及懒加载
1.Fragments Fragment是Activity中用户界面的一个行为或者是一部分,你可以在一个单独的Activity上把多个Fragment组合成为一个多区域的UI,并且可以在多个Activ ...
- Spring boot 配置文件默认放置位置,和加载优先级
一 .默认配置文件目录 spring boot 启动会扫描以下位置的application.properties 或者application.yml文件作为spring boot 的默认配置文件 ,加 ...
- SpringColud微服务-微服务概述
一.什么是微服务架构 微服务架构是一种架构模式,它提倡讲单一应用程序划分为一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在单独的进程当中,服务与服务之间采用轻量级的通信机制 ...