博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
时间复杂度
阅读量:5118 次
发布时间:2019-06-13

本文共 1368 字,大约阅读时间需要 4 分钟。

模拟

用栈维护

注意:

1、就算有语法错误也要将读入都读完。

2、注意防止RE
3、每一层的复杂度要取max

code:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define int long long #define INF 10000000000007#define maxn 100006 #define rep(i,a,b) for (int i=(a);i<=(b);++i)#define dep(i,a,b) for (int i=(a);i>=(b);--i)using namespace std; char tle[maxn],fx[maxn],fy[maxn];bool vis[maxn];int val[maxn],n;stack
ss;stack
s_;signed main(){ int t; cin>>t; while (t--) { cin>>n; cin>>(tle+1); memset(vis,0,sizeof(vis)); int flag=0,l=0; memset(val,0,sizeof(val)); rep(i,1,n) { char pan,nam; cin>>pan; int cnt=0; if (pan=='E') { if (ss.empty()) {flag=1;} else { int tmp=ss.top(); ss.pop(); if (tmp<0) cnt=0; else if (tmp>100000) cnt=val[l+1]+1; else cnt=val[l+1]; char wow=s_.top(); s_.pop(); vis[(int)wow]=0; val[l+1]=0; val[l]=max(val[l],cnt); l--; } } else { l++; cin>>nam; if (vis[(int)nam]) {flag=1;} vis[(int)nam]=1; s_.push(nam); cin>>(fx+1)>>(fy+1); int rfx=0,rfy=0,mul=1; dep(j,(int)strlen(fx+1),1) { if (fx[j]=='n') {rfx=INF;break;} rfx+=(fx[j]-'0')*mul; mul*=10; } mul=1; dep(j,(int)strlen(fy+1),1) { if (fy[j]=='n') {rfy=INF;break;} rfy+=(fy[j]-'0')*mul; mul*=10; } ss.push(rfy-rfx); } } if (flag||l!=0) {cout<<"ERR"<

转载于:https://www.cnblogs.com/bullshit/p/9933592.html

你可能感兴趣的文章
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
集合体系
查看>>
vi命令提示:Terminal too wide
查看>>
引用 移植Linux到s3c2410上
查看>>
MySQL5.7开多实例指导
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
poj1201 查分约束系统
查看>>
Red and Black(poj-1979)
查看>>
分布式锁的思路以及实现分析
查看>>