2018.11.02 洛谷P3952 时间复杂度(模拟)
传送门
惊叹考场dubuffdubuffdubuff。
这题还没有梭哈难啊233.
直接按照题意模拟就行了。
代码:
#include<bits/stdc++.h>
using namespace std;
int T,n,typ,dep[105];
bool f;
inline int calc(char s[]){
int len=strlen(s);
int ret=0,pos=0;
for(;pos!=len;++pos)if(isdigit(s[pos]))break;
while(isdigit(s[pos])&&pos!=len)ret=(ret<<3)+(ret<<1)+(s[pos]^48),++pos;
return ret;
}
int main(){
freopen("lx.in","r",stdin);
scanf("%d",&T);
while(T--){
stack<char>S;
set<char>exi;
char s[10];
int tot=0,now=0,ans=0;
memset(dep,0,sizeof(dep));
while(!S.empty())S.pop();
exi.clear(),scanf("%d%s",&n,&s),typ=0,f=1;
if(s[2]!='1'){
int len=strlen(s);
for(int i=4;i<len;++i){
if(!isdigit(s[i]))break;
typ=(typ<<3)+(typ<<1)+(s[i]^48);
}
}
int i=1;
for(;i<=n;++i,ans=max(ans,dep[now])){
scanf("%s",s);
if(s[0]=='E'){
if(!S.size()){f=0;break;}
exi.erase(S.top()),S.pop(),--now;
}
else{
scanf("%s",s);
char x[5],y[5];
scanf("%s%s",x,y);
if(exi.count(s[0])){f=0;break;}
S.push(s[0]),exi.insert(s[0]),++now;
if(dep[now-1]==-1){dep[now]=-1;continue;}
if(x[0]=='n'){
if(y[0]=='n'){dep[now]=dep[now-1];continue;};
dep[now]=-1;continue;
}
if(y[0]=='n'){dep[now]=dep[now-1]+1;continue;}
int X=calc(x),Y=calc(y);
if(X<=Y){dep[now]=dep[now-1];continue;}
else dep[now]=-1;
}
}
++i;
for(;i<=n;++i){
scanf("%s",s);
if(s[0]=='F')scanf("%s",s),scanf("%s",s),scanf("%s",s);
}
if(S.size())f=0;
if(f){
if(typ^ans)puts("No");
else puts("Yes");
}
else puts("ERR");
}
return 0;
}
2018.11.02 洛谷P3952 时间复杂度(模拟)的更多相关文章
- 洛谷 - P3952 - 时间复杂度 - 模拟
https://www.luogu.org/problemnew/show/P3952 这个模拟,注意每次进入循环的时候把新状态全部入栈,退出循环的时候就退栈. 第一次就错在发现ERR退出太及时,把剩 ...
- 2018.11.02 洛谷P2661 信息传递(拓扑排序+搜索)
传送门 按照题意模拟就行了. 先拓扑排序去掉不在环上面的点. 剩下的都是简单环了. 于是都dfsdfsdfs一遍求出最短的环就行. 代码: #include<bits/stdc++.h> ...
- 洛谷P3952 时间复杂度(模拟)
题意 题目链接 Sol 咕了一年的题解..就是个模拟吧 考场上写的递归也是醉了... 感觉一年自己进步了不少啊..面向数据编程的能力提高了不少 #include<bits/stdc++.h> ...
- 2018.11.02 洛谷P2831 愤怒的小鸟(状压dp)
传送门 状压一眼题. 直接f[i]f[i]f[i]表示未选择状态为iii时的最小次数. 然后考虑现在怎么转移. 显然可以直接枚举消掉某一个点或者某两个点,复杂度O(n22n)O(n^22^n)O(n2 ...
- 2018.11.02 洛谷P2312 解方程(数论)
传送门 直接做肯定会TLETLETLE. 于是考验乱搞能力的时候到了. 我们随便选几个质数来checkcheckcheck合法解,如果一个数无论怎么checkcheckcheck都是合法的那么就有很大 ...
- 洛谷 P3952 时间复杂度 解题报告
P3952 时间复杂度 题目描述 小明正在学习一种新的编程语言A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会 ...
- 计蒜客 时间复杂度 (模拟) & 洛谷 P3952 时间复杂度
链接 : Here! 思路 : 这是一道大模拟, 区分好情况就没问题了 循环构成部分 : $F , x , i , j$ 和 $E$ , 需要注意的是 $i , j$, - 分析 $i, j$ 的情况 ...
- 洛谷P3952 时间复杂度【字符串】【模拟】
题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序 ...
- 洛谷 P3952 时间复杂度【模拟】
把No写成NO,WA了一发-- 现在看这题也不难-- 用一个栈,记一下前面F的字母,是否合法,合法的有多长,每次入栈弹栈即可 #include<iostream> #include< ...
随机推荐
- 【linux】常见问题&常用命令笔记
1.重启以及关机命令: Linux centos重启命令: (1)reboot 普通重启 (2)shutdown -r now 立刻重启(root用户使用) (3)shutdown -r 10 过 ...
- python学习-类属性和实例属性
#类属性和实例属性 class Tool(object): #类属性 total = 0 #静态方法 @classmethod def say(self): print("hello wor ...
- sap 给集团分配一个逻辑系统
1.进入事务代码 SALE定义一个新的逻辑系统 2.通过事务代码RZ10 进入之后, 将参数login/no_automatic_user_sapstar 修改为“0”, 然后重启SAP服务生效 3. ...
- .NET通用工具——正则表达式
正则表达式就是一组字符串运算规则,你需要先把元字符记熟,然后就可以随意组合获得你想要的结果.把一些常用的正则表达式背下来也是一种方法,再加以变化获得你想要的结果. 正则表达式不需要刻意的去学习,当用到 ...
- 使用go语言的list实现一个简单的LRU缓存
package main; import ( "container/list" "errors" "sync" "fmt" ...
- Hibernate: save, persist, update, merge, saveOrUpdate[z]
[z]https://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate 1. Introduction In this ...
- Android开发之动态设置字体的样式和粗细
字体设置通常有两种形式: 1:在xml中直接设置 android:textStyle="bold" android:typeface="sans" 2:用jav ...
- UFT12 更新模式
一. 更新测试(非常规运行模式). 如果您知道应用程序已更改, 请以下列某种模式运行测试以相应更新测试: 维护运行模式.如果预计UFT 无法识别测试中的对象, 则使用此模式.当测试运行时, UFT ...
- 转 java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解. 下面开始正文. [案例1]通过一个对象 ...
- PAT 1063 计算谱半径(20)(代码)
1063 计算谱半径(20 分) 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a1+b1i,⋯,an+ ...