[Luogu 3952] NOIP2017 时间复杂度

<题目链接>


一年的时间说长不长,说短,也不短。

一年之内无数次觉得难得可怕的题目,原来也就模拟这么回事儿。

#include <cstdio>
#include <iostream>
#include <set>
#include <stack>
#include <string> int T; struct Layer
{
std::string name;
int state;
Layer(std::string name, int state): name(name), state(state){}
}; int Solve(std::string s)
{
if(s == "O(1)")
return 0;
int ans = 0;
for(int i = 4; s[i] != ')'; ++i)
ans = ans * 10 + s[i] - '0';
return ans;
} int Number(std::string s)
{
if(s[0] == 'n')
return 0;
int ans = 0;
for(int i = 0; s[i]; ++i)
ans = ans * 10 + s[i] - '0';
return ans;
} int main(void)
{
scanf("%d", &T);
while(T--)
{
bool right = true;
int n, ans, cur = 0, fact = 0;
std::set<std::string> Name;
std::stack<Layer> S;
std::string a[5];
scanf("%d", &n);
std::cin >> a[0];
ans = Solve(a[0]);
for(int i = 1; i <= n; ++i)
{
std::cin >> a[1];
if(a[1] == "F")
{
for(int i = 2; i <= 4; ++i)
std::cin >> a[i];
if(right && !Name.count(a[2]))
{
int state, x = Number(a[3]), y = Number(a[4]);
if((!S.empty() && S.top().state == -1) || (!x && y) || (x > y && y))
state = -1;
else if(x && !y)
{
state = 1;
++cur;
}
else
state = 0;
Name.insert(a[2]);
S.push(Layer(a[2], state));
}
else
right = false;
}
else if(right)
{
if(!S.empty())
{
Layer t = S.top();
Name.erase(t.name);
S.pop();
fact = std::max(fact, cur);
if(t.state == 1)
--cur;
}
else
right = false;
}
}
if(!S.empty())
right = false;
if(!right)
puts("ERR");
else
puts(ans == fact ? "Yes" : "No");
}
return 0;
}

谢谢阅读。

[Luogu 3952] NOIP2017 时间复杂度的更多相关文章

  1. [luogu P3953] [noip2017 d1t3] 逛公园

    [luogu P3953] [noip2017 d1t3] 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张$N$个点$M$条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,$N ...

  2. [luogu P3960] [noip2017 d2t3] 队列

    [luogu P3960] [noip2017 d2t3] 队列 题目描述 Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Syl ...

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

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

  4. luogu 3952 时间复杂度

    noip2017 D1T2 时间复杂度 某zz选手考场上写了1.5h 考完之后发现自己写的是错的 但是结果A了??? 题目大意: 一种新的编程语言 A++ 给出一个程序只有循环语句 并给出这个程序的时 ...

  5. luogu 3952 时间复杂度(模拟)

    时间复杂度 这道题从两个月前开始做,一直没做出来,最后今晚决心一定要做出来.于是开始认真的在打草纸上写思路,最后在AC的那一刻,差点哭了出来!! 题目大意 这个自己看吧,noip2017的D1T2 s ...

  6. Luogu 3959 [NOIP2017] 宝藏

    NOIP2017最后一道题 挺难想的状压dp. 受到深度的条件限制,所以一般的状态设计带有后效性,这时候考虑把深度作为一维,这样子可以保证所有状态不重复计算一遍. 神仙预处理:先处理出一个点连到一个集 ...

  7. P3952 NOIP2017 时间复杂度

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

  8. Luogu 3953[NOIP2017] 逛公园 堆优化dijkstra + 记忆化搜索

    题解 首先肯定是要求出单源最短路的,我用了堆优化dijikstra ,复杂度 mlogm,值得拥有!(只不过我在定义优先队列时把greater 打成了 less调了好久 然后我们就求出了$i$到源点的 ...

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

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

随机推荐

  1. SpringMVC运行原理浅析

    SpringMVC是主流的J2EEWEB层框架,SpringMVC是Sping家族中一个重要的产品.下面给出SpringMVC的运行原理.springmvc和spring无需通过中间层进行整合,spr ...

  2. 信安实践——自建CA证书搭建https服务器

    1.理论知识 https简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HT ...

  3. Alpha冲刺阶段博客汇总

    第一篇(冲刺前安排):http://www.cnblogs.com/Aragaki-Yui/p/8893752.html 第二篇(冲刺第一天):http://www.cnblogs.com/Araga ...

  4. 获取SQL Server中连接的客户端IP地址[转]

    有时候需要获取连接到SQL Server服务器上的客户端IP地址,用什么办法呢? SELECT *FROM sys.dm_exec_connections WHERE session_id = @@S ...

  5. es6 字符串String的扩展

    新特性:模板字符串 传统字符串 let name = "Jacky"; let occupation = "doctor"; //传统字符串拼接 let str ...

  6. [C/C++] 输入函数getline(cin,str) 与cin.getline(str,int)区别

    cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针,第二个参数为数组字符串长度. getline(cin,str ...

  7. HashMap的put方法返回值问题

    API文档中的描述: 先看一个例子 Map<Character, Integer> map = new HashMap<Character, Integer>(); Syste ...

  8. Mybatis笔记八:MyBatis中#{}和${}的区别

    先给大家介绍下MyBatis中#{}和${}的区别,具体介绍如下: 1. $将传入的数据直接显示生成在sql中 2. #方式能够很大程度防止sql注入. 3.$方式无法防止Sql注入. 4.$方式一般 ...

  9. uoj35 后缀排序

    题目链接:http://uoj.ac/problem/35 这是一道模板题. 读入一个长度为 n 的由小写英文字母组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第 ...

  10. LINUX第四周学习

    <Linux内核设计与实现>第四周读书笔记——第五章 5.1 与内核通信57 系统调用在用户空间进程和硬件设备之间添加了一个中间层,该层主要作用有三个: 首先它为用户空间提供了一种硬件的抽 ...