Princess Principal

https://www.nowcoder.com/acm/contest/201/J

题目描述

阿尔比恩王国(the Albion Kingdom)潜伏着一群代号“白鸽队(Team White Pigeon)”的间谍。在没有任务的时候,她们会进行各种各样的训练,比如快速判断一个文档有没有语法错误,这有助于她们鉴别写文档的人受教育程度。
这次用于训练的是一个含有n个括号的文档。括号一共有m种,每种括号都有左括号和右括号两种形式。我们定义用如下的方式定义一个合法的文档:
1.一个空的字符串是一个合法的文档。
2.如果A,B都是合法的文档,那么AB也是合法的文档。
3.如果S是合法的文档,那么aSb也是合法的文档,其中a,b是同一种括号,并且a是左括号,b是右括号。
现在给出q个询问,每次询问只考虑文档第l至r个字符的情况下,文档是不是合法的。

输入描述:

第一行两个整数n,m,q(1 ≤ n,m,q ≤ 10

6

)。第二行有n个空格隔开的整数x,第i个整数x

i

(0 ≤ x

i

 < m*2)代表文档中的第i个字符是第

种括号。另外,如果x

i

是偶数,它代表一个左括号,否则它代表一个右括号。
接下来q行,每行两个空格隔开的整数l,r(1 ≤ l ≤ r ≤ n),代表询问第l至r个字符构成的字符串是否是一个合法的文档。

输出描述:

输出共q行,如果询问的字符串是一个合法的文档,输出"Yes",否则输出"No"。

输入

6 4 3
0 2 3 1 4 7
1 4
1 5
5 6

输出

Yes
No
No 个人感觉思路很神奇,可能是因为我太菜了。。。
 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<stack>
using namespace std; int a[];
int ans[]; int main(){
std::ios::sync_with_stdio(false);
int n,m,q;
stack<int>st;
cin>>n>>m>>q;
for(int i=;i<=n;i++){
cin>>a[i];
}
for(int i=;i<=n;i++){
if(st.empty()){
st.push(i);
}
else if((a[st.top()]/!=a[i]/)||(a[st.top()]+!=a[i])){
st.push(i);
}
else{
st.pop();
}
if(st.empty()){
ans[i]=;
}
else{
ans[i]=st.top();
}
}
int x,y;
while(q--){
cin>>x>>y;
if((y-x)&){
if(ans[y]==ans[x-]){
puts("Yes");
}
else{
puts("No");
}
}
else{
puts("No");
}
}
}

 

Princess Principal(思维题)的更多相关文章

  1. HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)

    HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...

  2. zoj 3778 Talented Chef(思维题)

    题目 题意:一个人可以在一分钟同时进行m道菜的一个步骤,共有n道菜,每道菜各有xi个步骤,求做完的最短时间. 思路:一道很水的思维题, 根本不需要去 考虑模拟过程 以及先做那道菜(比赛的时候就是这么考 ...

  3. cf A. Inna and Pink Pony(思维题)

    题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...

  4. ZOJ 3829 贪心 思维题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...

  5. 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)

    思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...

  6. C. Nice Garland Codeforces Round #535 (Div. 3) 思维题

    C. Nice Garland time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  7. PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记

    PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...

  8. UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)

    UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...

  9. cf796c 树形,思维题

    一开始以为是个树形dp,特地去学了..结果是个思维题 /* 树结构,设最大点权值为Max,则答案必在在区间[Max,Max+2] 证明ans <= Max+2 任取一个点作为根节点,那么去掉这个 ...

随机推荐

  1. [UE4]通过代码改变材质

    OrangeMaterial = ConstructorStatics.OrangeMaterial.Get(); , OrangeMaterial); 使用到的结构体如下: struct FCons ...

  2. PHP-Socket服务端客户端发送接收通信实例详解

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://fighter.blog.51cto.com/1318618/1533957 So ...

  3. Session的使用与Session的生命周期

    1.HttpSession的方法 Object getAttribute(String); Enumeration<String> getAttributeNames(); long ge ...

  4. 第13章 TCP编程(4)_基于自定义协议的多线程模型

    7. 基于自定义协议的多线程模型 (1)服务端编程 ①主线程负责调用accept与客户端连接 ②当接受客户端连接后,创建子线程来服务客户端,以处理多客户端的并发访问. ③服务端接到的客户端信息后,回显 ...

  5. 了解java的类加载器

    1.java运行之前,编译后的class文件需要加载到虚拟机内存,这必须用到class的加载器来加载,所以有必要了解加载器原理. 2.加载器采用父类委派机制加载,这样的目的是保证基础类仅仅加载一次(比 ...

  6. Linux查看进程,端口,访问url

    # 查看进程# ps -ef|grep python# 终止进程# kill -9 id # 端口 netstat -ntl # 显示正在监听的tcp端口,以端口号显示 netstat -apn|gr ...

  7. 【Javascript Demo】遮罩层和百度地图弹出层简单实现

    其实想做的就是显示百度地图的弹出层,现在已经简单实现了.示例和代码如下,点击按钮可以看到效果: 1.示例:   2.代码: <!DOCTYPE html PUBLIC "-//W3C/ ...

  8. 使用IDEA开发Activiti工作流

    首先安装cativiti插件,安装成功后重启IDEA 然后在文件夹右键选择 然后就可以画图了,但是画图之后,没有连接图标怎么办呢 把鼠标放在开头的那个图标上,此时光标的形状改变了. 拖到另一个上面,连 ...

  9. Cookie的过期时间设置

    https://pan.baidu.com/s/1ibUQhLt6ZgVyhVM6mnrtHg 密码:9psc

  10. C#--抽象工厂设计模式原理

    C#--抽象工厂设计模式原理 C#--抽象工厂设计模式--三层框架 C#--使用反射改进简单工厂