正题

题目链接:https://www.luogu.org/problemnew/show/P3952


题目大意

比较复杂就直接给截图了


解题思路

开一个栈来维护序列,因为它保证合法的程序中一个变量不会相互嵌套所以就拿变量的字母当做每个循环的下标即可。然后对于输入的x,yx,yx,y有五种情况

  1. x=N,y=N(x≤y)x=\mathbb{N},y=\mathbb{N}(x\leq y)x=N,y=N(x≤y)压入栈中,不做特殊处理
  2. x=n,y=nx=n,y=nx=n,y=n同上
  3. x=N,y=N(x>y)x=\mathbb{N},y=\mathbb{N}(x>y)x=N,y=N(x>y)使内部嵌套的循环不做处理
  4. x=n,y=Nx=n,y=\mathbb{N}x=n,y=N同上
  5. x=N,y=nx=\mathbb{N},y=nx=N,y=n目前时间复杂度加一

然后特判一下ERRERRERR就好了


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
using namespace std;
stack<int> q;
int T,n,w,none,b[30],times,ans,use[30];
bool fuck;
char c;
int read()
{int num=0;while((c=getchar())!=' '&&c!='\n'){if(c=='n') {c=getchar();return -1;}else num=num*10+c-'0';}return num;
}
int main()
{scanf("%d",&T);while(T--){while(!q.empty()) q.pop();memset(b,0,sizeof(b));memset(use,0,sizeof(use));fuck=none=times=ans=0;scanf("%d ",&n);char c;scanf("O(%c",&c);if(c!='n') w=0;else scanf("%c%d",&c,&w);scanf(")");for(int i=1;i<=n;i++){scanf("\n%c",&c);if(c=='E'){if(fuck) continue;if(q.empty()) {fuck=1;continue;}if(q.top()==none) none=0;if(!none){if(b[q.top()]) times--;b[q.top()]=0;use[q.top()]=0;}q.pop();}if(c=='F'){scanf(" %c ",&c);c-='a'-1;int x=read(),y=read();if(fuck) continue;if(use[c]) {fuck=1;continue;}q.push(c);if(none) continue;use[c]=1;if(x==-1&&y!=-1) none=c;if(x!=-1&&y!=-1&&y<x) none=c;if(x!=-1&&y==-1) times++,b[c]=1;ans=max(ans,times);}}if(!q.empty()||fuck) printf("ERR\n");else if(w!=ans) printf("No\n");else printf("Yes\n");}
}

P3952-时间复杂度【模拟】相关推荐

  1. 计蒜客 时间复杂度 (模拟) 洛谷 P3952 时间复杂度

    链接 : Here! 思路 : 这是一道大模拟, 区分好情况就没问题了 循环构成部分 : $F , x , i , j$ 和 $E$ , 需要注意的是 $i , j$, - 分析 $i, j$ 的情况 ...

  2. P3952 时间复杂度(模拟)

    https://www.luogu.org/problem/P3952 题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程 ...

  3. 洛谷P3952 时间复杂度【字符串】【模拟】

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

  4. 洛谷 P3952时间复杂度 (本地AC测评RE的伪题解)

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

  5. NOIP 2017 时间复杂度 (模拟)

    题目大意:略 傻了吧唧的我wa了好几次 我的模拟功底真的不咋地 linux下用gets会报错,我用的fgets 1 #include <string> 2 #include "s ...

  6. OI每周刷题记录——lrllrl

    看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...

  7. 【云计算入门3】基础技术和并行计算模型

    云计算入门系列目录 [云计算入门1] 云计算是什么? [云计算入门]云部署模型 [云计算入门2]基本云安全 [云计算入门3]基础技术和并行计算模型 本文目录 云计算入门系列目录 基础技术 计算机技术的 ...

  8. NOIP 2017 Day1 T2 时间复杂度 complexity - 模拟题 题解

    作者@豪哒哒哒HaoDaDaDa 转载自简书@豪哒哒哒HaoDaDaDa-简书-NOIP 2017 Day1 T2 时间复杂度 (有一个月没有写简书了-) (这次终于开始拿Markdown写了,富文本 ...

  9. P3952 NOIP2017 时间复杂度

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

  10. Di-visible Confusion 贪心,模拟,思维,时间复杂度

    题意: 给一序列,问是否能将数删完,删的条件是这个数不能被下标+1整除 思路: 考虑任意aia_iai​,若它前面的所有元素都能在某个位置时被删除(显然,这会导致aia_iai​下标的前移),则第i个 ...

最新文章

  1. Distilling the Knowledge in a Neural Network 论文笔记蒸馏
  2. 树莓派 之 系统登陆及设置本地化(简体中文)
  3. python元组取值_Python基础之元组
  4. 使用h5py操作hdf5文件
  5. win10虚拟机下载安装流程
  6. 老人疯狂裂变引流视频推广微信小程序源码支持定时流量主
  7. Hulu热招|广告智能团队
  8. 禅宗公案 艾舍尔的画与哥德尔定理——哥德尔逻辑与哲学之2
  9. mysql期中考试题及答案_MySQL数据库考试试题及答案 -
  10. 安全好用的智能头盔,自带灯光提示与语音功能,力沃BH51M Neo体验
  11. SMAA算法详解 - AreaTex
  12. CorelDRAW X8超低价优惠啦,你却还在用CDR X4破解?!
  13. [Inferior 1 (process 17260) exited normally] Debugger finished with status 0
  14. 利用python进行平行束FBP重建结果
  15. python困境_Python笔记-囚徒困境及记录困境中的选择
  16. 去中心化应用:区块链技术概述
  17. 「技术分享」TSINGSEE青犀视频云存储架构的设计和特点
  18. egg-jwt egg jwt 使用
  19. 最大扇入数怎么判断_思维启蒙课怎么选?豌豆思维课实测报告,家长应早知道...
  20. 钉钉与钉钉对接集成查询表单列表详情(宜搭)连通发起审批实例(官方)(钉钉【项目事项】未审核完成=>钉钉【工作延误记录表】)

热门文章

  1. tankwar java_TankWar 单机(JAVA版) 版本0.3 画出坦克
  2. 在c语言程序中将数据分为两种,2012年计算机二级C语言考点归纳汇总(一至四章)...
  3. php拖拽原理,JS拖拽原理
  4. 复旦计算机考研英语,2020考研复旦计算机专硕392经验贴
  5. facade java_Java设计模式之Facade模式
  6. python豆瓣历史评分_Python实战-爬取豆瓣top250评分高于指定值的电影信息
  7. MATLAB函数gensurf,MATLAB模糊逻辑工具箱函数.ppt
  8. vector的逆序输出(神奇的vector)
  9. [SpringSecurity]框架概述
  10. [Java基础]Random