[Luogu] 时间复杂度
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] 时间复杂度的更多相关文章
- luogu P3952 时间复杂度 模拟
题目链接 luogu P3952 时间复杂度 题解 直接模拟即可 注意不要直接return 我真是naive ...... 代码 #include<map> #include<sta ...
- [Luogu 3952] NOIP2017 时间复杂度
[Luogu 3952] NOIP2017 时间复杂度 一年的时间说长不长,说短,也不短. 一年之内无数次觉得难得可怕的题目,原来也就模拟这么回事儿. #include <cstdio> ...
- 【luogu P3952 时间复杂度】 题解
对于2017 D1 T2 这道题 实实在在是个码力题,非常考验耐心. 其实大体的思路并不是非常难想出来,但是要注意的小细节比较多. 题目链接:https://www.luogu.org/problem ...
- [LUOGU] P3952 时间复杂度
其实,也没那么难写 这种模拟题,仔细分析一下输入格式,分析可能的情况,把思路写在纸上,逐步求精,注意代码实现 主要思路就是算一个时间复杂度,和给出的复杂度比较,这就先设计一个函数把给出的复杂度由字符串 ...
- luogu 3952 时间复杂度
noip2017 D1T2 时间复杂度 某zz选手考场上写了1.5h 考完之后发现自己写的是错的 但是结果A了??? 题目大意: 一种新的编程语言 A++ 给出一个程序只有循环语句 并给出这个程序的时 ...
- luogu 3952 时间复杂度(模拟)
时间复杂度 这道题从两个月前开始做,一直没做出来,最后今晚决心一定要做出来.于是开始认真的在打草纸上写思路,最后在AC的那一刻,差点哭了出来!! 题目大意 这个自己看吧,noip2017的D1T2 s ...
- [NOIp2017] luogu P3952 时间复杂度
跪着看评测很优秀. 题目描述 给你若干个程序,这些程序只有 For 循环,求这些程序的时间复杂度. Solution 大模拟.讲下细节. flag[i]flag[i]flag[i] 表示第 iii 位 ...
- luogu P4183 Cow at Large P (暴力吊打点分治)(内有时间复杂度证明)
题面 贝茜被农民们逼进了一个偏僻的农场.农场可视为一棵有N个结点的树,结点分别编号为 1,2,-,N .每个叶子结点都是出入口.开始时,每个出入口都可以放一个农民(也可以不放).每个时刻,贝茜和农民都 ...
- [luogu P2647] 最大收益(贪心+dp)
题目传送门:https://www.luogu.org/problem/show?pid=2647 题目描述 现在你面前有n个物品,编号分别为1,2,3,--,n.你可以在这当中任意选择任意多个物品. ...
随机推荐
- poj 2342 【Anniversary party】树形dp
题目传送门//res tp poj 题意 给出一棵有权树,求一个节点集的权值和,满足集合内的任意两点不存在边 分析 每个点有选中与不选中两种状态,对于第\(i\)个点,记选中为\(sel_i\),不选 ...
- python--关于正则表达式的学习小结
python中提供了re这个模块提供对正则表达式的支持. 一.正则表达式常用到的一些语法(并非全部): . 匹配任意单个字符 [...] 匹配单个字符集 \w 匹配单词字符,即[a-zA-Z0-9] ...
- getContextPath、getServletPath、getRequestURI、getRealPath、getRequestURL、getPathInfo();的区别
<% out.println("getContextPath: "+request.getContextPath()+"<br/>"); ou ...
- thymeleaf 模板使用 提取公共页面
切记!!!thymeleaf模板的使用,姿势很重要!!!姿势不对,可能导致样式.js等的使用受到影响 前台开发中,由于页面目录结构不同,可能导致引入的公共页面中的的跳转路径在部分页面能用,部分页面不能 ...
- OpenCV安装和测试
参考链接:http://blog.csdn.net/bruce_zeng/article/details/7961153 OpenCv下载链接:http://sourceforge.net/proje ...
- Newtonsoft.Json基本用法
1.将一个 Object 序列化成 JSON: DataSet detail = sqlDB.GetDataSet(string.Format("select * from student ...
- 针对nginx应用场景的配置 知识整理
本文为转载,原文链接 前言 原本想写整理一篇针对nginx应用场景的相应配置,但发现已经有人整理了,而且写得非常不错,特意转过来 概论 Nginx 是一款面向性能设计的 HTTP 服务器,能反向代理 ...
- C和指针--链表
1.链表的基本概念 链表(linked list)是一些包含数据的节点的集合.链表中的每个节点通过链或指针连接在一起.程序通过指针访问链表中的节点.通常节点是动态分配的. 2.链表的分类 链表可分为: ...
- 10_Redis_多数据库
一:概念: 一个Redis实例可以包括多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个mysql中创建多个数据库,客户端连接时指定连接哪个数据库. 一个Redis实例最多可提供 ...
- 04_Redis_Hash命令
一:Redis 哈希(Hash) 1.1:Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. 1.2:Redis 中每个 hash 可以存储 ...