对大模拟抱有深深的恐惧……不过这次写好像还好?拿个栈维护一下循环的嵌套,然后重定义一下读入即可。记得去年在考场上面死活调不粗来,代码也奇丑无比……希望今年能好一点吧!

#include <bits/stdc++.h>
using namespace std;
#define maxn 100000
int L, mark[maxn];
char ans[maxn]; int fread(int t)
{
int x = , k = ;
char c; c = ans[t]; t ++;
while(t < strlen(ans) && (c < '' || c > ''))
{
if(c == '-') k = -;
if(c == 'n') x = ;
c = ans[t]; t ++;
}
while(t < strlen(ans) && c >= '' && c <= '')
x = x * + c - '', c = ans[t], t ++;
return x * k;
} int read()
{
int x = , k = ;
char c; c = getchar();
while(c < '' || c > '')
{
if(c == '-') k = -;
if(c == 'n') { x = ; return x; }
c = getchar();
}
while(c >= '' && c <= '') x = x * + c - '', c = getchar();
return x * k;
} struct node
{
char c; int num;
node(char _c = 'z' + , int _num = )
{ c = _c, num = _num; }
}S[maxn]; void Work()
{
memset(mark, , sizeof(mark));
int cal = , top = , cnt = , err = , flag = ;
for(int i = ; i <= L; i ++)
{
char c; cin >> c;
if(c == 'F')
{
char x; cin >> x;
if(mark[x - 'a']) flag = ;
int l = read(), r = read();
mark[x - 'a'] = ;
if(r - l > && !err) cnt ++, cal = max(cal, cnt);
if(l > r) err ++;
S[++ top] = node(x, r - l);
}
else
{
if(!top) { flag = ; continue; }
mark[S[top].c - 'a'] = ;
if(!err) cnt -= S[top].num > ;
if(S[top].num < ) err --;
top --;
}
}
int len = strlen(ans), tag = , t = ;
for(int i = ; i < len; i ++)
if(ans[i] == 'n') tag = i + ;
else if(tag && i == tag) { t = fread(i); break; }
if(top) flag = ;
if(flag) { printf("ERR\n"); return; }
if(cal != t) flag = ;
if(flag) { printf("No\n"); return; }
printf("Yes\n"); return;
} int main()
{
int T; scanf("%d", &T);
while(T --)
{
scanf("%d %s", &L, ans);
Work();
}
return ;
}

【题解】NOIP2017时间复杂度的更多相关文章

  1. 【比赛】NOIP2017 时间复杂度

    恶心的模拟题,考场上犯了一堆错误,多组数据清空没清完.数组开小...民间都是50分,结果CCF90.. 考完后随便改改就过了,还好只少了10分,如果真的是50,我估计会疯掉. 因为考场的时候没写好,所 ...

  2. [Luogu 3952] NOIP2017 时间复杂度

    [Luogu 3952] NOIP2017 时间复杂度 一年的时间说长不长,说短,也不短. 一年之内无数次觉得难得可怕的题目,原来也就模拟这么回事儿. #include <cstdio> ...

  3. P3952 NOIP2017 时间复杂度

    写了两三个小时,麻烦倒是不麻烦,要考虑清楚,想全了 只过了样例提交是不是傻,要自己造数据 数据不大可以用STL 建议自己刚一下,不看代码 #include <iostream> #incl ...

  4. luoguP3952 [NOIP2017]时间复杂度 模拟

    原本只是想看下多久能码完时间复杂度 然后在30min内就码完了,然后一A了???? 首先,这题完全可以离线做 我们先把所有的操作读完,判断合不合法之后,再去判断和标准答案的关系 具体而言 把所有的操作 ...

  5. [NOIP2017]时间复杂度

    题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序 ...

  6. 【洛谷P3952】[NOIP2017]时间复杂度

    时间复杂度 题目链接 对于 100%的数据:L≤100 . 很明显的模拟题 然而考试时还是爆炸了.. 调了一下午.. 蒟蒻表示不会离线操作.. 直接贴代码: #include<cstdio> ...

  7. NOIP2017 时间复杂度 大模拟

    再写一道大模拟题. 由于是限时写的,相当于考场代码,乱的一批. 题目链接:P3952 时间复杂度 先记几个教训: 字符串形式的数字比较大小老老实实写函数,字典序都搞错几次了 栈空的时候不但pop()会 ...

  8. [NOIP2017]时间复杂度(模拟)

    sscanf读入数字,getline(cin,string)读一整行,其余暴力模拟即可. #include<cstdio> #include<string> #include& ...

  9. Luogu3952 NOIP2017时间复杂度

    搞一个栈模拟即可.对比一下和一年前考场上的代码233 //2018.11.8 #include<iostream> #include<cstdio> #include<c ...

随机推荐

  1. 详解UML图之类图

    产品经理的必备技能之一是画UML图,本文就告诉你怎么画标准的类图吧.本文结合网络资料和个人心得所成,不当之处,请多指教. 1.为什么需要类图?类图的作用 我们做项目的需求分析,最开始往往得到的是一堆文 ...

  2. JS基础,课堂作业,成绩练习

    成绩练习 <script> var name = prompt("请输入学生姓名:"); var degree = parseInt(prompt("请输入学 ...

  3. php实现图形计算器

    存档: index.php <html> <head> <title>图形计算器开发</title> <meta http-equiv=" ...

  4. Mysql基础操作语句

    SQL 简单的增删改查 不区分大小写, 表名和字段名可不加引号 查询语句 SELECT * FROM `table_name`; -- 注释 CTRL+/ : 注释 CTRL+/ : 取消注释 /* ...

  5. Nginx高性能优化

    #Nginx配置文件优化 worker_processes ; # nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity ; # 为每个进程分配CPU的 ...

  6. JAVA学习笔记--接口

    一.抽象类和抽象方法 在谈论接口之前,我们先了解一下抽象类和抽象方法.我们知道,在继承结构中,越往下继承,类会变得越来越明确和具体,而往上回溯,越往上,类会变得越抽象和通用.我们有时候可能会需要这样一 ...

  7. PHP学习和使用总结

    起因 学习和使用PHP也有不少年头了,而自己也在学习和使用其他许多语言.我想通过这个总结来给自己一个交代.另一方面也分享一下开发经验,如何用PHP开发和管理大型的项目. 闲聊 许多人说自己1天学会PH ...

  8. mysql系列学习

    # 帮助help create user;# 查看当前用户select user();# 创建用户create user 'egon'@'localhost' identified by '123'; ...

  9. JS加密库

    作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正 本文主要是参考aicoder马伦老师的博 ...

  10. gulp配置文件(gulpfile.js)

    需要安装的插件 "gulp": "^3.9.1","gulp-clean": "^0.3.2","gulp-c ...