【题解】洛谷P3952 [NOIP2017TG] 时间复杂度(模拟)
题目来源:洛谷P3952
思路
纯模拟没啥可说的了
果然好复杂
参考了你谷一个40行代码
代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int T,tot,num,Max,stand,now,k,n,cnt;
int member[],what[];
bool vis[];
//tot是有几个句子,stand是题目给的复杂度是多少
//now是当前在几重循环,vis[]是判断变量是否使用过
//member[]是存下每个循环的变量,tot是当前复杂度是多少(与now不同)
//k是判断下面程序是否进行,what[]是存下哪几个循环加了复杂度
//m是当前最大复杂度,n是存下k=1时的循环数
//T是数据组数
string a,b;//循环使用
int main()
{
cin>>T;
while(T--)
{
Max=stand=tot=num=now=k=n=cnt=;
memset(vis,,sizeof(vis));
memset(what,,sizeof(what));
do
{
a=b;//记录一共有几行
cin>>b;
}
while(b[]!='O');//当读入到O时停止一次
for(int i=;i<a.length();i++) cnt=cnt*+a[i]-'';//计算有几行
for(int i=;i<b.length()-;i++) stand=stand*+b[i]-'';//计算是n的几次方 如果是O(1)不影响 存成0
while(cnt--)
{
cin>>a;//输入第一个字符
if(a[]=='F')
{
now++;//循环次数增加
cin>>a;//输入变量
if(vis[a[]-]) now=-;//如果此变量已经用过 说明语法错误
else
{
vis[a[]-]=;
member[now]=a[]-;//记录在此次循环用了这个变量
}
cin>>a>>b;//输入变量后面的两个数
if((a[]!='n')&&(b[]=='n')&&(!k))//如果前面是数字后面是n 且可以运行的话
{
tot++;//可行循环+1
what[now]=;//此循环有计算
}
else if(((a.length()==b.length()&&a>b)||(a.length()>b.length())||(a[]=='n'&&b[]!='n'))&&(!k))
{
//如果a>b(n 4,45 12,24 9) 而且可以运行 那么标记下面的都不能运行 记下当前循环
//像5 8,76 78, n n 之类的不影响,不需要处理
k=;
n=now;
}
}
else//跳出循环
{
Max=max(Max,tot);//计算最大的循环次数
vis[member[now]]=;//此变量被删去
if(what[now]==)//如果此循环内增加了复杂度
{
what[now]=;//清空标记
tot--;//当前复杂度还原
}
now--;//总循环还原
if(n>&&now<n)//如果此时跳出了被n标记的循环 即不进行的循环 就把标记清楚 接下来的循环可以进行
{
k=;
n=;
}
}
if(now==-)//如果e<0(变量用过或者E过多),那么输出ERR,跳出循环
{
cout<<"ERR"<<endl;
break;
}
}
if(now>) cout<<"ERR"<<endl;//如果e>0(F过量),那么输出ERR,跳出循环
if(now==&&stand==Max) cout<<"Yes"<<endl;//如果F,E相同而且最大复杂度等于题目给的复杂度,输出Yes
if(now==&&stand!=Max) cout<<"No"<<endl;//如果F,E相同而且最大复杂度不等于题目给的复杂度,输出No
}
}
【题解】洛谷P3952 [NOIP2017TG] 时间复杂度(模拟)的更多相关文章
- 【题解】洛谷P3953 [NOIP2017TG] 逛公园(记忆化搜索+SPFA)
题目来源:洛谷P3953 思路 先用SPFA求一遍最短路 在求最短路的同时可以把所有点到终点的最短路求出来 dis数组 注意要反向SPFA 因为从起点开始可能会走到一些奇怪的路上导致时间负责度增加 ...
- 【题解】洛谷P3959 [NOIP2017TG] 宝藏(状压DP+DFS)
洛谷P3959:https://www.luogu.org/problemnew/show/P3959 前言 NOIP2017时还很弱(现在也很弱 看出来是DP 但是并不会状压DP 现在看来思路并不复 ...
- 题解 洛谷 P3396 【哈希冲突】(根号分治)
根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...
- 题解-洛谷P5410 【模板】扩展 KMP(Z 函数)
题面 洛谷P5410 [模板]扩展 KMP(Z 函数) 给定两个字符串 \(a,b\),要求出两个数组:\(b\) 的 \(z\) 函数数组 \(z\).\(b\) 与 \(a\) 的每一个后缀的 L ...
- 题解-洛谷P4229 某位歌姬的故事
题面 洛谷P4229 某位歌姬的故事 \(T\) 组测试数据.有 \(n\) 个音节,每个音节 \(h_i\in[1,A]\),还有 \(m\) 个限制 \((l_i,r_i,g_i)\) 表示 \( ...
- 题解-洛谷P4724 【模板】三维凸包
洛谷P4724 [模板]三维凸包 给出空间中 \(n\) 个点 \(p_i\),求凸包表面积. 数据范围:\(1\le n\le 2000\). 这篇题解因为是世界上最逊的人写的,所以也会有求凸包体积 ...
- 题解-洛谷P4859 已经没有什么好害怕的了
洛谷P4859 已经没有什么好害怕的了 给定 \(n\) 和 \(k\),\(n\) 个糖果能量 \(a_i\) 和 \(n\) 个药片能量 \(b_i\),每个 \(a_i\) 和 \(b_i\) ...
- 题解 洛谷 P2010 【回文日期】
By:Soroak 洛谷博客 知识点:模拟+暴力枚举 思路:题目中有提到闰年然后很多人就认为,闰年是需要判断的其实,含有2月29号的回文串,前四位是一个闰年那么我们就可以直接进行暴力枚举 一些小细节: ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
随机推荐
- Spring boot Mybatis 整合(注解版)
之前写过一篇关于springboot 与 mybatis整合的博文,使用了一段时间spring-data-jpa,发现那种方式真的是太爽了,mybatis的xml的映射配置总觉得有点麻烦.接口定义和映 ...
- Navicat 连接MySQL 8.0.11 出现2059错误
错误 使用Navicat Premium 连接MySQL时出现如下错误: 原因 mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是cach ...
- No.1一步步学习vuejs 环境配置安装篇
一 安装与配置 需要安装node.js和 nmp管理器http://nodejs.cn/安装完后测试输入命令查看版本验证 node -v //查看node.js的版本 npm -v //查看 由于有些 ...
- 【转】百亿级实时大数据分析项目,为什么不用Hadoop?
百亿数量级的大数据项目,软硬件总体预算只有30万左右,需求是进行复杂分析查询,性能要求多数分析请求达到秒级响应. 遇到这样的项目需求,预算不多的情况,似乎只能考虑基于Hadoop来实施. ...
- poj 1700 Crossing River 过河问题。贪心
Crossing River Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9887 Accepted: 3737 De ...
- 从ExtensionLoader理解Dubbo扩展机制
Dubbo的扩展机制是怎么实现的?最简单的回答就是@SPI. Dubbo的插件化思路来源于Java SPI. JAVA SPI 机制 SPI的全名为Service Provider Int ...
- Cocos2d-js 开发记录:骨骼动画载入
不得不说cocos2d-js的文档实在是少,骨骼动画的载入和C++版本的好像还有些不同不能直接依样画葫芦. 一个由cocos studio编辑生成的骨骼动画一般会包含如下几个文件: .ExportJs ...
- SQL Server中建立自定义函数
在SQL Server中用户可以自定义函数,像内置函数一样返回标量值,也可以将结果集用表格变量返回.用户自定义函数的2种类型:1.标量函数:返回一个标量值:2.表格值函数{内联表格值函数.多表格值函数 ...
- 02_zookeeper配置
[zoo.cfg] * tickTime:用于计算的时间单元.比如session超时:N*tickTime * initLimit:用于集群,允许从节点连接并且同步到master节点的初始化连接时间, ...
- 10_Redis实现分布式锁
来源:吴兆锋, https://wudashan.cn/2017/10/23/Redis-Distributed-Lock-Implement/ 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁: ...