https://www.luogu.org/problemnew/show/P3952

考场上输出的是 "YES" "NO"

++ ,如果不是亲身经历,打死我我都不信

思路:

  递归模拟

  细节挺多

  难度不大

  容易写挂

#include <bits/stdc++.h>

using namespace std;
const int oo = ; int T, L, Maxpow;
char use[];
bool vis[], flag;
int last; inline int get() {
char c[];
scanf("%s", c);
int len = strlen(c);
int ret = ;
if(len == ) return c[] == 'n' ? oo : c[] - '';
else for(int i = ; i < len; i ++) ret = ret * + c[i] - '';
return ret;
} void Go_on() {
int jsF(), jsE();
while(jsE <= jsF) {
L --;
char H; cin >> H;
if(H == 'E') {jsE ++; vis[use[last --]] = ; if(jsE > jsF) return ;}
else {
char Int; int x, y;
cin >> Int; x = get(); y = get();
if(vis[Int]) {flag = ; return ;}
else {vis[Int] = ; use[++ last] = Int;}
jsF ++;
}
}
} void Work(int floor_pow, int floor) { // 到达当前层时的最大次数
while(L) {
if(flag) return ;
L --;
char H; cin >> H;
if(H == 'F') {
char Int; cin >> Int; int x = get(), y = get();
if(vis[Int]) {flag = ; return ;}
else {vis[Int] = ; use[++ last] = Int;}
if(x != oo && y == oo) {
Maxpow = max(Maxpow, floor_pow + );
Work(floor_pow + , floor + );
} else {
if((x == oo && y != oo) || (x > y)) {Go_on();}
else Work(floor_pow, floor + );
}
} else {
vis[use[last --]] = ;
if(floor != ) return ;
}
} } inline void Read_over() {
while(L) {L --; char H; cin >> H; if(H == 'F') {cin >> H; H = get(); H = get();}}
} int main() {
cin >> T;
while(T --) {
cin >> L;
char tim[];
scanf("%s", tim);
memset(vis, , sizeof vis); last = ;
int len = strlen(tim);
if(L % ) {cout << "ERR" << endl; Read_over(); continue ;}
Maxpow = ; last = ; flag = ;
Work(, );
if(L) Read_over();
if(last || flag) {cout << "ERR" << endl; continue ;}
int Pow;
if(tim[] == '') Pow = ;
else if(len == ) Pow = tim[] - '';
else if(len == ) Pow = (tim[] - '') * + tim[] - '';
else if(len == ) Pow = ((tim[] - '') * + tim[] - '') * + tim[] - '';
if(Pow == Maxpow) cout << "Yes" << endl;
else cout << "No" << endl;
}
return ;
}

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

  1. luogu P3952 时间复杂度 模拟

    题目链接 luogu P3952 时间复杂度 题解 直接模拟即可 注意不要直接return 我真是naive ...... 代码 #include<map> #include<sta ...

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

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

  3. 【luogu P3952 时间复杂度】 题解

    对于2017 D1 T2 这道题 实实在在是个码力题,非常考验耐心. 其实大体的思路并不是非常难想出来,但是要注意的小细节比较多. 题目链接:https://www.luogu.org/problem ...

  4. [LUOGU] P3952 时间复杂度

    其实,也没那么难写 这种模拟题,仔细分析一下输入格式,分析可能的情况,把思路写在纸上,逐步求精,注意代码实现 主要思路就是算一个时间复杂度,和给出的复杂度比较,这就先设计一个函数把给出的复杂度由字符串 ...

  5. luogu 3952 时间复杂度

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

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

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

  7. [NOIp2017] luogu P3952 时间复杂度

    跪着看评测很优秀. 题目描述 给你若干个程序,这些程序只有 For 循环,求这些程序的时间复杂度. Solution 大模拟.讲下细节. flag[i]flag[i]flag[i] 表示第 iii 位 ...

  8. luogu P4183 Cow at Large P (暴力吊打点分治)(内有时间复杂度证明)

    题面 贝茜被农民们逼进了一个偏僻的农场.农场可视为一棵有N个结点的树,结点分别编号为 1,2,-,N .每个叶子结点都是出入口.开始时,每个出入口都可以放一个农民(也可以不放).每个时刻,贝茜和农民都 ...

  9. [luogu P2647] 最大收益(贪心+dp)

    题目传送门:https://www.luogu.org/problem/show?pid=2647 题目描述 现在你面前有n个物品,编号分别为1,2,3,--,n.你可以在这当中任意选择任意多个物品. ...

随机推荐

  1. A + B for you again HDU - 1867(最大前缀&最大后缀的公共子缀&kmp删除法)

    Problem Description Generally speaking, there are a lot of problems about strings processing. Now yo ...

  2. kube-dns和coreDNS的使用

    内部服务发现 前面我们给大家讲解了 Service 的用法,我们可以通过 Service 生成的 ClusterIP(VIP)来访问 Pod 提供的服务,但是在使用的时候还有一个问题:我们怎么知道某个 ...

  3. webpack打包时删除console.log,和debugger

    开发过程中我们不可避免的需要console.log调试,然而在上线时如果不删除这些console.log可能会造成内存泄漏,因为console.log出来的变量是不会被GC的,webpack给我们提供 ...

  4. dotnet跨平台 - 使用Nginx+Docker Compose运行.NETCore项目

    参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...

  5. 复杂度n求数组的第K大值

    利用快速排序的方法进行: #include<iostream> using namespace std; int test() { ; return a; } int quickSort( ...

  6. TypeScript入门四:TypeScript的类(class)

    TypeScript类的基本使用(修饰符) TypeScript类的抽象类(abstract) TypeScript类的高级技巧 一.TypeScript类的基本使用(修饰符) TypeScript的 ...

  7. 一个下午整理的Web前端常见的英文缩写

    PV (Page View)页面浏览量 FED(Front-End Development)前端开发 F2E(Front-End Engineer)前端工程师 WWW(World Wide Web)万 ...

  8. vue 之this.$router.push、replace、go的区别

    一.this.$router.push 说明:跳转到指定URL,向history栈添加一个新的记录,点击后退会返回至上一个页面 使用: this.$router.push('/index') this ...

  9. 理解 chroot

    什么是 chroot chroot,即 change root directory (更改 root 目录).在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的. ...

  10. C#中设置double类型数据的小数长度

    如果double A=1.5321654:需要将其转换为3位小数,字符串的话A.tostring(".###")就可以,输出的是1.532: 也可以用A.ToString(&quo ...