洛谷 P3952 时间复杂度【模拟】
把No写成NO,WA了一发……
现在看这题也不难……
用一个栈,记一下前面F的字母,是否合法,合法的有多长,每次入栈弹栈即可
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=105;
int T,n,top,co[305],mx,fl,er,va;
char o[10],c[N];
struct qwe
{
char c;
int fl,va;
}s[N];
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%s\n",&n,o);//cerr<<" "<<n<<endl;
top=0,mx=0,fl=0,er=0,va=0;
memset(co,0,sizeof(co));
for(int i=1;i<=n;i++)
{
gets(c);//cerr<<"???"<<i<<" "<<c<<endl;
if(c[0]=='E')
{
if(!top)
er=1;
else
{
co[s[top].c]--;
fl-=s[top].fl;
va-=s[top].va;
top--;
}
}
else
{
if(co[c[2]])
er=1;
s[++top].c=c[2];
co[c[2]]++;
int w=4,x=0,fx=-1,y=0,fy=-1;
while(c[w]>='0'&&c[w]<='9')
fx=1,x=x*10+c[w]-48,w++;
w=max(w+1,6);
while(c[w]>='0'&&c[w]<='9')
fy=1,y=y*10+c[w]-48,w++;
// cerr<<fx<<" "<<x<<" "<<fy<<" "<<y<<endl;
if((fx==-1&&fy!=-1)||(fx!=-1&&fy!=-1&&x>y))
s[top].fl=1,fl++;
else
s[top].fl=0;
if(fx!=-1&&fy==-1)
s[top].va=1,va++;
else
s[top].va=0;
if(!fl)
mx=max(mx,va);
}
}
if(top)
er=1;
int x=0,w=4;
while(o[w]>='0'&&o[w]<='9')
x=x*10+o[w]-48,w++;
// cerr<<x<<" "<<mx<<endl;
if(er)
puts("ERR");
else if((o[2]=='n'&&mx==0)||(o[2]=='n'&&mx!=x))
puts("No");
else
puts("Yes");
}
return 0;
}
洛谷 P3952 时间复杂度【模拟】的更多相关文章
- 洛谷 - P3952 - 时间复杂度 - 模拟
https://www.luogu.org/problemnew/show/P3952 这个模拟,注意每次进入循环的时候把新状态全部入栈,退出循环的时候就退栈. 第一次就错在发现ERR退出太及时,把剩 ...
- 洛谷P3952 时间复杂度(模拟)
题意 题目链接 Sol 咕了一年的题解..就是个模拟吧 考场上写的递归也是醉了... 感觉一年自己进步了不少啊..面向数据编程的能力提高了不少 #include<bits/stdc++.h> ...
- 洛谷 P3952 时间复杂度 解题报告
P3952 时间复杂度 题目描述 小明正在学习一种新的编程语言A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会 ...
- 洛谷P3952 时间复杂度【字符串】【模拟】
题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序 ...
- 计蒜客 时间复杂度 (模拟) & 洛谷 P3952 时间复杂度
链接 : Here! 思路 : 这是一道大模拟, 区分好情况就没问题了 循环构成部分 : $F , x , i , j$ 和 $E$ , 需要注意的是 $i , j$, - 分析 $i, j$ 的情况 ...
- 2018.11.02 洛谷P3952 时间复杂度(模拟)
传送门 惊叹考场dubuffdubuffdubuff. 这题还没有梭哈难啊233. 直接按照题意模拟就行了. 代码: #include<bits/stdc++.h> using names ...
- 洛谷P3952 时间复杂度
大毒瘤...... 时隔快半年我终于花了两个小时堪堪A掉这一题...果然我还没有准备好. 想法:用DFS模拟递归. 时间复杂度的处理:每层循环取max,然后相加. 最大难点:各种繁杂而令人发指的特判. ...
- 洛谷 P3952时间复杂度 (本地AC测评RE的伪题解)
[题目描述] 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写 ...
- 【题解】洛谷P3952 [NOIP2017TG] 时间复杂度(模拟)
题目来源:洛谷P3952 思路 纯模拟没啥可说的了 果然好复杂 参考了你谷一个40行代码 代码 #include<iostream> #include<cstdio> #inc ...
随机推荐
- T1992 聚会 codevs
http://codevs.cn/problem/1992/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小S 想要从某地 ...
- ARM PPC 交叉编译环境搭建
ARM: 1,下载cross-3.4.1.tar.bz2 2,在/usr/local目录下建立arm目录 3,将cross-3.4.1.tar.bz2拷贝到arm目录下 4,tar jxvf cros ...
- hp 88a加粉
http://v.youku.com/v_show/id_XNzEzODEwNzMy.html
- 第三方APP集成微信登陆功能详解
授权后接口调用(UnionID) 通过code获取access_token 接口说明 通过code获取access_token的接口. 请求说明 http请求方式: GET https://api.w ...
- Excel小tips - 如何设置表格输入数字后末尾自动添加%
选中一列——鼠标右键——设置单元格格式——数字——自定义——0% 按照以上操作完成后,点击确定,就大功告成了.
- 【转】海量数据处理算法-Bloom Filter
1. Bloom-Filter算法简介 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合.它是一个判断元素是否存在于 ...
- Linux 修改终端命令提示符颜色
相信很多人已经看厌了Linux已成不变的命令提示符的颜色,多数人要么使用默认的绿色,要么在使用PUTTY的时候设置成绿色的,不知道是否有人想到提示符可以设置成其他的颜色呢,本文就说明命令提示符变量PS ...
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 【部分题解】
2014牡丹江亚洲区域赛邀请赛 B题:图论题目 题解:这里 K题:想法题 分析:两种变化.加入和交换.首先:星号是n的话最少须要的数字是n+1,那么能够首先推断数字够不够,不够的话如今最前面添数字,假 ...
- apache下配置认证用户
有时候我们须要给我apacheserver下制定的文件夹加上用户认证,方便一些而用户进行文件的浏览.配置例如以下: 1 设置用户 1 htpasswd -c file_path user_name 回 ...
- 编程基础知识——Java JNI开发流程(2)
android中使用jni调用本地C++库 android平台上的本地库文件后缀 .so.类似windows上的dll文件. 要在android上使用jni.首先须要下载android ndk. 操作 ...