题目大意:

题解:模拟

卡点:1.数组忘清空

(考场代码风格独特。。。)

C++ Code:

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int inf=2000;
int T,n,F,E,top,ls,ans,temp,can,w;
char ch,s[10000];
string p;
bool pd,halt,llw[10000];
bool read(int &x){
char t=getchar();bool pd=0;
while(t<'0'||t>'9'){
if (t=='^')pd=1;
t=getchar();
}
for (x=t^48,t=getchar();t>='0'&&t<='9';t=getchar())x=x*10+(t^48);
return pd;
}
int main(){
// freopen("complexity.in","r",stdin);
// freopen("complexity.out","w",stdout);
scanf("%d",&T);
while (T--){
scanf("%d",&n);
// printf("Debug:%d\n",n);
pd=read(w);
// printf("D:%d\n",w);
getline(cin,p);
top=0;can=inf;
halt=false;
ans=temp=0;
for (int i=0;i<n;i++){
int x,y;
char cha;
getline(cin,p);
ls=p.length();
// cout << "lalal" << p << endl;
if (halt)continue;
if (p[0]=='F'){
int now;
for (now=1;now<ls;now++)if (p[now]!=' ')break;
ch=p[now];
for (int j=0;j<top;j++)if (ch==s[j]){
puts("ERR");
halt=1;
continue;
}
if (halt)continue;
s[top++]=ch;
llw[top-1]=0;
if (can<top)continue;
for (now++;now<ls;now++)if (p[now]!=' ')break;
if (p[now]=='n')x=inf;
else {
for (x=p[now]^48,now++;p[now]>='0'&&p[now]<='9';now++)x=x*10+(p[now]^48);
}
for (now++;now<ls;now++)if (p[now]!=' ')break;
if (p[now]=='n')y=inf;
else {
for (y=p[now]^48,now++;p[now]>='0'&&p[now]<='9';now++)y=y*10+(p[now]^48);
}
// printf("DEBUG:%d %d\n",x,y);
if (x<y&&y==inf)temp++,llw[top-1]=1;
if (temp>ans)ans=temp;
// printf("%d\n", temp);
if (x==y)llw[top-1]=0;
if (x<y&&y!=inf)llw[top-1]=0;
if (x>y)can=top,llw[top-1]=0;
}else{
if (p[0]=='E'){
top--;
if (top<0){
puts("ERR");
halt=1;
continue;
}
if (llw[top])temp--;
if(can>=top)can=inf;
}
}
}
if (top&&!halt){
puts("ERR");
halt=1;
}
if (!halt){
if (pd){
if (ans==w)puts("Yes");
else puts("No");
}else if (ans==0)puts("Yes");
else puts("No");
}
}
return 0;
}

  

[NOIP2017 TG D1T2]时间复杂度的更多相关文章

  1. 【NOIP题解】NOIP2017 TG D2T3 列队

    列队,NOIP2017 TG D2T3. 树状数组经典题. 题目链接:洛谷. 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. ...

  2. NOIP2017 d1t2 时间复杂度

    题目传送门:洛谷P3952 大模拟不解释 #include<iostream> #include<cstdio> #include<cmath> #include& ...

  3. NOIP2017 D1T2时间复杂度

    这道题在考试时看到感觉与第一题放反了位置(因为我还没有看到第一题是结论题) 对于每个语句进行栈的模拟,而如果有语法错误就特判. 对于每一条for语句我们将其与栈顶元素连边,复杂度是1的我们不用考虑,如 ...

  4. noip2017 TG 游记

    嗨小朋友们大家好,还记得我是谁吗?我就是为GG代言的蒟蒻--xzz 今天呐我特别的要向HN的dalao们ZJ的巨佬们还有全国的神犇们问声好 为什么呢因为我们在2017年11月份来到了吔屎的长沙理工大学 ...

  5. [NOIP2017 TG D2T3]列队

    题目大意:有一个$n \times m$的方阵,第$i$行第$j$列的人的编号是$(i-1) \times m + j$. 现在有$q$个出列操作,每次让一个人出列,然后让这个人所在行向左看齐,再让最 ...

  6. 【NOIP2017 DAY1T2】 时间复杂度

    [题目链接] 点击打开链接 [算法] 其实这就是一道模拟题啦! 在判error和计算时间复杂度时,我们需要用栈这种数据结构 [代码] 这题的代码还是有些难写的,写的时候一定要有条理! #include ...

  7. [NOIp2017] luogu P3952 时间复杂度

    跪着看评测很优秀. 题目描述 给你若干个程序,这些程序只有 For 循环,求这些程序的时间复杂度. Solution 大模拟.讲下细节. flag[i]flag[i]flag[i] 表示第 iii 位 ...

  8. [NOIP2017 TG D2T2]宝藏(模拟退火)

    题目大意:$NOIPD2T2$宝藏 题解:正常做法:状压DP .这次模拟退火,随机一个排列,$O(n^2)$贪心按排列的顺序加入生成树 卡点:没开$long\;long$,接受较劣解时判断打错,没判$ ...

  9. [NOIP2017 TG D2T2]宝藏

    题目大意:给定一个有重边,边有权值的无向图.从某一个点出发,求到达所有的点需要的最少费用,并且限制两点之间只有一条路径.费用的计算公式为:所有边的费用之和.而边$x->y$的费用就为:$y$到初 ...

随机推荐

  1. 13.6 模拟事件【JavaScript高级程序设计第三版】

    事件,就是网页中某个特别值得关注的瞬间.事件经常由用户操作或通过其他浏览器功能来触发. 但很少有人知道,也可以使用JavaScript 在任意时刻来触发特定的事件,而此时的事件就如同浏览器创建的事件一 ...

  2. 8.1 编写USB鼠标驱动程序,并测试

    学习目标:编写USB鼠标驱动程序,并测试(将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键). 一.怎么写USB设备驱动程序?步骤如下: 1. 首先先定义全局变量usb_d ...

  3. mongodb常用命令学习笔记

    mongodb常用命令学习笔记 创建数据库 use DATABASE_NAME eg: use users; 如果数据库不存在,则创建数据库,否则切换到指定数据库.要显示刚刚创建的数据库,需要向数据库 ...

  4. (数据科学学习手札32)Python中re模块的详细介绍

    一.简介 关于正则表达式,我在前一篇(数据科学学习手札31)中已经做了详细介绍,本篇将对Python中自带模块re的常用功能进行总结: re作为Python中专为正则表达式相关功能做出支持的模块,提供 ...

  5. JS正则表达式笔记

    正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 正则 描述 ...

  6. 签名的html

    <b><a href="http://www.feiyuanxing.com" style="color:red">未来星开发团队--狒 ...

  7. python 字典(dict)按键和值排序

    python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序 ...

  8. Mac上配置Cocos2d-x开发环境(多平台:Android/iOS)

    下载以下资源: Cocos2d-x (http://www.cocos2d-x.org) Android NDK(http://developer.android.com/tools/sdk/ndk/ ...

  9. PHP二维数组按某个键值排序

    $data=Array(    [0] => Array        (            [id] => 2            [user_id] => 14       ...

  10. appium + Python + iOS 滑屏方法(appium版本大于1.5)

    之前一直在搞android的自动化,滑动操作一直都用swipe(),比如: he1 = int(dr.get_window_size()['height'] * 0.8)he2 = int(dr.ge ...