【比赛】NOIP2017 时间复杂度



恶心的模拟题,考场上犯了一堆错误,多组数据清空没清完、数组开小。。。民间都是50分,结果CCF90。。
考完后随便改改就过了,还好只少了10分,如果真的是50,我估计会疯掉。
因为考场的时候没写好,所以最终的代码也很难看。
#include<bits/stdc++.h>
using namespace std;
int T,n,stk[],p[],fnum,stack_num,sck[],sck_num;
char s[],ch[],res[];
inline void init()
{
memset(p,,sizeof(p));
memset(res,,sizeof(res));
memset(sck,,sizeof(sck));
memset(stk,,sizeof(stk));
sck_num=;
stack_num=;
fnum=;
}
inline void Dealwith()
{
init();
int ans=,mark=,nxt=,nnum=,las=,done=;
for(register int i=;i<=n;++i)
{
scanf("%s",ch);
if(ch[]=='F')
{
if(done)
{
scanf("%s",ch);
scanf("%s",ch);
scanf("%s",ch);
continue;
}
fnum++;
scanf("%s",ch);
if(p[ch[]-'a'])
{
printf("ERR\n");
done=;
}
p[ch[]-'a']=;
stk[++stack_num]=ch[]-'a';
int fl1,num1=,fl2,num2=; scanf("%s",ch);
if(ch[]>=''&&ch[]<='')
{
fl1=;
for(register int j=;j<strlen(ch);++j)num1=(num1<<)+(num1<<)+(ch[j]^'');
}
else fl1=; scanf("%s",ch);
if(ch[]>=''&&ch[]<='')
{
fl2=;
for(register int j=;j<strlen(ch);++j)num2=(num2<<)+(num2<<)+(ch[j]^'');
}
else fl2=; if(fnum!=nxt)continue; if(fl1==&&fl2==)nxt=fnum;
else if(fl1==&&fl2==)
{
if(num1>num2)nxt=fnum;
else nxt=fnum+,sck[++sck_num]=;
}
else if(fl1==&&fl2==)
{
mark=;
nnum++;
if(ans<nnum)ans++;
nxt=fnum+;
sck[++sck_num]=;
}
else sck[++sck_num]=,nxt=fnum+;
}
else
{
if(done)continue;
if(!fnum)
{
printf("ERR\n");
done=;
}
if(done)continue;
if(nxt==fnum+)
{
fnum--,nxt--;
if(sck[sck_num--]==)nnum--;
}
else fnum--;
p[stk[stack_num--]]=;
}
}
if(done)return ;
if(fnum)
{
printf("ERR\n");
return ;
}
if(mark)
{
res[]='O',res[]='(',res[]='n',res[]='^';
int respos=,tmppos=;
char tmp[];
while(ans)tmp[++tmppos]=ans%+'',ans/=;
while(tmppos)res[++respos]=tmp[tmppos--];
res[++respos]=')';res[++respos]='\0';
}
else res[]='O',res[]='(',res[]='',res[]=')',res[]='\0'; if(!strcmp(s,res))printf("Yes\n");
else printf("No\n");
}
int main()
{
freopen("complexity.in","r",stdin);
freopen("complexity.out","w",stdout);
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);scanf("%s",s);
Dealwith();
}
return ;
}
NOIP2017 时间复杂度
【比赛】NOIP2017 时间复杂度的更多相关文章
- [Luogu 3952] NOIP2017 时间复杂度
[Luogu 3952] NOIP2017 时间复杂度 一年的时间说长不长,说短,也不短. 一年之内无数次觉得难得可怕的题目,原来也就模拟这么回事儿. #include <cstdio> ...
- P3952 NOIP2017 时间复杂度
写了两三个小时,麻烦倒是不麻烦,要考虑清楚,想全了 只过了样例提交是不是傻,要自己造数据 数据不大可以用STL 建议自己刚一下,不看代码 #include <iostream> #incl ...
- luoguP3952 [NOIP2017]时间复杂度 模拟
原本只是想看下多久能码完时间复杂度 然后在30min内就码完了,然后一A了???? 首先,这题完全可以离线做 我们先把所有的操作读完,判断合不合法之后,再去判断和标准答案的关系 具体而言 把所有的操作 ...
- [NOIP2017]时间复杂度
题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序 ...
- 【洛谷P3952】[NOIP2017]时间复杂度
时间复杂度 题目链接 对于 100%的数据:L≤100 . 很明显的模拟题 然而考试时还是爆炸了.. 调了一下午.. 蒟蒻表示不会离线操作.. 直接贴代码: #include<cstdio> ...
- NOIP2017 时间复杂度 大模拟
再写一道大模拟题. 由于是限时写的,相当于考场代码,乱的一批. 题目链接:P3952 时间复杂度 先记几个教训: 字符串形式的数字比较大小老老实实写函数,字典序都搞错几次了 栈空的时候不但pop()会 ...
- 【题解】NOIP2017时间复杂度
对大模拟抱有深深的恐惧……不过这次写好像还好?拿个栈维护一下循环的嵌套,然后重定义一下读入即可.记得去年在考场上面死活调不粗来,代码也奇丑无比……希望今年能好一点吧! #include <bit ...
- [NOIP2017]时间复杂度(模拟)
sscanf读入数字,getline(cin,string)读一整行,其余暴力模拟即可. #include<cstdio> #include<string> #include& ...
- Luogu3952 NOIP2017时间复杂度
搞一个栈模拟即可.对比一下和一年前考场上的代码233 //2018.11.8 #include<iostream> #include<cstdio> #include<c ...
随机推荐
- Jmeter+ant+jenkins接口自动化测试 平台搭建(二)
一.依赖文件配置 1.在ant目录C:\apache-ant-1.10.5下新建一个demo文件夹,并将jmeter测试脚本放在该文件夹中 2.将\apache-jmeter-3.3\extras下面 ...
- VM虚拟机安装CentOS 7.0添加jdk环境
虚拟机注册码 5A02H-AU243-TZJ49-GTC7K-3C61N 安装centos系统,网络类型选择桥接网络安装完成后vi /etc/sysconfig/network-scripts/ifc ...
- JUC——线程同步锁(ReentrantLock)
ReentrantLock简介 ReentrantLock是一个可重复的互斥锁,又被称为独占锁,可重入的意思是:ReentrantLock锁可以被单个线程多次获取.但是在同一个时间点只能被一个线程锁持 ...
- Unity3D Shader 学习笔记(二):ShaderLab的结构和基本属性
(一) ShaderLab: 什么是ShaderLab: Unity3D支持的Shader种类包括: 1.Surface Shader:表面着色器 2.Vertex & Fragment Sh ...
- 一句话打印'*'图案(列表推导式, 人生苦短, 我用Python)
```python # coding=utf-8 print ('\n'.join(['*'*6 for i in range(4)])) # ****** # ****** # ****** # * ...
- centos7以上安装python3,一条命令搞定。
直接复制下面的命令就搞定 yum install python34 python34-pip python34-setuptools 使用方法: python3 ---.py pip3 install ...
- node child_process模块
NodeJs是一个单进程的语言,不能像Java那样可以创建多线程来并发执行.当然在大部分情况下,NodeJs是不需要并发执行的,因为它是事件驱动性永不阻塞.但单进程也有个问题就是不能充分利用CPU的多 ...
- 在Gulp中使用BrowserSync
博客已迁移至http://zlwis.me. 很早就听说过BrowserSync,也看过一些相关文章,可就是没用过.之前一直在用Gulp开发项目,每次编写完Sass后还要用按F5刷新页面看效果,想想也 ...
- WebGL学习笔记一
学习用来做web3D的,从第一页开始学起先做2D的,接下来的程序是一个入门级的程序,可以通过在画板上的不同位置点击而获取不同颜色的点,以画板中心为坐标原点四个象限有不同的颜色,访问地址 http:/ ...
- iis托管管道模式-学习
文章;IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员尤其有用,因为这样既可以令一台服务器 ...