洛谷 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 ...
随机推荐
- msp430入门编程47
msp430中C语言的人机交互--菜单退出 msp430入门编程 msp430入门学习
- linux 安装报错:pkg-config not found
linux 安装报错:pkg-config not found 使用编译安装时,在执行./configure时报如下错误: ... ... checking for pkg-config... no ...
- Partition List(链表的插入和删除操作,找前驱节点)
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- navicat 无法连接到腾讯云Mysql
远程连接进入服务器 远程连接进入服务器之后,输入命令mysql -u root -p 之后输入mysql密码,进入mysql 命令环境 设置开启远程登录 GRANT ALL PRIVILEGES ON ...
- java代码编译过程
简单随笔 java程序需要先编译成class文件然后才能执行,由于是编程成立机器代码,虚拟机加载内存的时候更快的执行. java文件编译成class文件步骤如下: 1)词法分析,检查每一个关键字单词是 ...
- 文本框变更值触发js事件
//输入数量更新,不需要失去焦点才触发 $(document).on('input', "input[id^='itemquantity']", function () { sav ...
- 火狐firefox、谷歌chrome等浏览器扩展、插件介绍
火狐旧的插件扩展已经不可用,需要更新,这是本人安装的最新的插件 chrome插件 https://www.zhihu.com/question/68338297
- linux安装mail服务使用外部MTA发送邮件
阉割版的linux没有mail命令,也没有/etc/mail.rc文件 需要安装mail服务 yum install mailx.x86_64 几个概念:MUA.MTA.MDA 邮件用户代理(MUA, ...
- hdoj-1242-Rescue【广搜+优先队列】
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- Android进阶图片处理之三级缓存方案
图片的三级缓存 一.概述 一開始在学习Android的时候.处理图片的时候,每次获取图片都是直接从网络上面载入图片. 可是在开发项目的过程中,每次点击进入app里面,图片都要慢慢的再一次从网络上面载入 ...