[NOIP2017 TG D1T2]时间复杂度
题目大意:略
题解:模拟
卡点: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]时间复杂度的更多相关文章
- 【NOIP题解】NOIP2017 TG D2T3 列队
列队,NOIP2017 TG D2T3. 树状数组经典题. 题目链接:洛谷. 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. ...
- NOIP2017 d1t2 时间复杂度
题目传送门:洛谷P3952 大模拟不解释 #include<iostream> #include<cstdio> #include<cmath> #include& ...
- NOIP2017 D1T2时间复杂度
这道题在考试时看到感觉与第一题放反了位置(因为我还没有看到第一题是结论题) 对于每个语句进行栈的模拟,而如果有语法错误就特判. 对于每一条for语句我们将其与栈顶元素连边,复杂度是1的我们不用考虑,如 ...
- noip2017 TG 游记
嗨小朋友们大家好,还记得我是谁吗?我就是为GG代言的蒟蒻--xzz 今天呐我特别的要向HN的dalao们ZJ的巨佬们还有全国的神犇们问声好 为什么呢因为我们在2017年11月份来到了吔屎的长沙理工大学 ...
- [NOIP2017 TG D2T3]列队
题目大意:有一个$n \times m$的方阵,第$i$行第$j$列的人的编号是$(i-1) \times m + j$. 现在有$q$个出列操作,每次让一个人出列,然后让这个人所在行向左看齐,再让最 ...
- 【NOIP2017 DAY1T2】 时间复杂度
[题目链接] 点击打开链接 [算法] 其实这就是一道模拟题啦! 在判error和计算时间复杂度时,我们需要用栈这种数据结构 [代码] 这题的代码还是有些难写的,写的时候一定要有条理! #include ...
- [NOIp2017] luogu P3952 时间复杂度
跪着看评测很优秀. 题目描述 给你若干个程序,这些程序只有 For 循环,求这些程序的时间复杂度. Solution 大模拟.讲下细节. flag[i]flag[i]flag[i] 表示第 iii 位 ...
- [NOIP2017 TG D2T2]宝藏(模拟退火)
题目大意:$NOIPD2T2$宝藏 题解:正常做法:状压DP .这次模拟退火,随机一个排列,$O(n^2)$贪心按排列的顺序加入生成树 卡点:没开$long\;long$,接受较劣解时判断打错,没判$ ...
- [NOIP2017 TG D2T2]宝藏
题目大意:给定一个有重边,边有权值的无向图.从某一个点出发,求到达所有的点需要的最少费用,并且限制两点之间只有一条路径.费用的计算公式为:所有边的费用之和.而边$x->y$的费用就为:$y$到初 ...
随机推荐
- 发布django项目
supervisor需要用到的技术 1. nginx反向代理 2. nginx负载均衡 3. uwsgi 4. supervisor 5. virtualenv 安装nginx 详情参考 https: ...
- Angularjs 跨域post数据到springmvc
先贴网上己有解决方案链接: http://www.tuicool.com/articles/umymmqY (讲的是springmvc怎么做才可以跨域) http://my.oschina.net/ ...
- 前端面试题目汇总摘录(JS 基础篇 —— 2018.11.02更新)
温故而知新,保持空杯心态 JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string type ...
- CPU计算密集型和IO密集型
CPU计算密集型和IO密集型 第一种任务的类型是计算密集型任务,其特点是要进行大量的计算,消耗CPU资源,比如计算圆周率.对视频进行高清解码等等,全靠CPU的运算能力.这种计算密集型任务虽然也可以用多 ...
- Oozie 配合 sqoop hive 实现数据分析输出到 mysql
文件/RDBMS -> flume/sqoop -> HDFS -> Hive -> HDFS -> Sqoop -> RDBMS 其中,本文实现了 使用 sqoo ...
- P1103 书本整理
P1103 书本整理 题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由 ...
- poorpool 的 考场 NOI Linux 配置
把~/.bashrc里的force_color_prompt=yes前面那个#去掉,终端就有高亮啦qwq!(然后source一下 然后vim ~/.vimrc然后加入 (为什么不改/etc/vim/v ...
- SharedPreferences Android
类似iOS的NSUserDefaults,采用key-value(键值对)形式,主要用于轻量级的数据存储 public class MainActivity extends AppCompatActi ...
- 『JavaScript』封装
封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏.通过封装可以强制实施信息隐藏. 在JavaScript中,并没有显示的声明私有成员的关键字等.所以要想实现封装/信息隐藏就需要从另外的思路出 ...
- Java并发(多线程)
一.多线程的基本概念 1.什么是进程.多进程有什么作用? 大家都使用计算机,当我们打开某一个软件的时候,其实就是启动了一个进程,可以打开任务管理器看看,我们打开的每一个软件,都是一个进程,在同一个操作 ...