LOJ P3952 时间复杂度 noip 暴力 模拟
https://www.luogu.org/problemnew/show/P3952
模拟,日常认识到自己zz。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
using namespace std;
const int maxn=;
char ch[];
int n,ans,ke;
int f[maxn]={},x[maxn]={},l[maxn]={},r[maxn]={};
int vis[maxn][]={},fa[maxn]={},dep[maxn]={};
void dfs(int num,int dui){
if(num>n){if(dui)ke=;return;}
if(f[num]==){
if(dui==){ke=;return;}
dfs(num+,fa[dui]);
return;
}
if(vis[dui][x[num]]){ke=;return;}
for(int i=;i<=;i++)
vis[num][i]=vis[dui][i];
fa[num]=dui;vis[num][x[num]]=;
if(l[num]<=r[num]&&!((l[num]==)^(r[num]==))){
dep[num]=dep[dui];
ans=max(ans,dep[num]);
dfs(num+,num);
}
else if(r[num]==){
dep[num]=dep[dui]+;
ans=max(ans,dep[num]);
dfs(num+,num);
}
else{
int k=num+,z=,du=num;
while(z){
if(!f[k]){
--z;du=fa[du];
}
else{
if(vis[du][x[k]])ke=;
for(int i=;i<=;i++)
vis[k][i]=vis[du][i];
fa[k]=du;vis[k][x[k]]=;du=k;
++z;
}
++k;
}k--;
if(k<n+){
dfs(k+,dui);
}
else{
ke=;return;
}
}
}
int main(){
int T;scanf("%d",&T);
while(T-->){
memset(f,,sizeof(f));
memset(fa,,sizeof(fa));
memset(vis,,sizeof(vis));
memset(dep,,sizeof(dep));
scanf("%d",&n); scanf("%s",ch); int k=;
if(ch[]!='') for(int i=;ch[i]!=')';i++) k=k*+ch[i]-'';
for(int i=;i<=n;i++){
scanf("%s",ch);
if(ch[]=='F'){
f[i]=;
scanf("%s",ch);
x[i]=ch[]-'a'+;
scanf("%s",ch); l[i]=;
if(ch[]!='n'){
for(int j=;ch[j]>=''&&ch[j]<='';j++)l[i]=l[i]*+ch[j]-'';
}
scanf("%s",ch); r[i]=;
if(ch[]!='n'){
for(int j=;ch[j]>=''&&ch[j]<='';j++)r[i]=r[i]*+ch[j]-'';
}
}else f[i]=;
}
ans=;ke=;dfs(,);
if(ke)printf("ERR\n");
else if(ans==k)printf("Yes\n");
else printf("No\n");
}
return ;
}
LOJ P3952 时间复杂度 noip 暴力 模拟的更多相关文章
- luogu P3952 时间复杂度 模拟
题目链接 luogu P3952 时间复杂度 题解 直接模拟即可 注意不要直接return 我真是naive ...... 代码 #include<map> #include<sta ...
- P3952 时间复杂度
P3952 时间复杂度 题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机 ...
- 洛谷 P3952 时间复杂度 解题报告
P3952 时间复杂度 题目描述 小明正在学习一种新的编程语言A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会 ...
- NOIP前模拟赛总结
NOIP前模拟赛总结 from 2018.10.7 to ??? Date Name Score(Rank) Problems 2018.10.7 McfXH AK Contest 42(?) 期望得 ...
- bnuoj 20832 Calculating Yuan Fen(暴力模拟)
http://www.bnuoj.com/bnuoj/problem_show.php?pid=20832 [题意]: 给你一串字符串,求一个ST(0<ST<=10000),对字符串中字符 ...
- POJ 1013 小水题 暴力模拟
Counterfeit Dollar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35774 Accepted: 11 ...
- hdu_1006 Tick and Tick(暴力模拟)
hdu1006 标签(空格分隔): 暴力枚举 好久没有打题了,退队了有好几个月了,从心底不依赖那个人了,原来以为的爱情戏原来都只是我的独角戏.之前的我有时候好希望有个人出现,告诉自己去哪里,做什么,哪 ...
- hihoCoder #1871 : Heshen's Account Book-字符串暴力模拟 自闭(getline()函数) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction B) 2018 ICPC 北京区域赛现场赛B
P2 : Heshen's Account Book Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Description H ...
- 美团2018年CodeM大赛-资格赛 分数 暴力模拟
链接:https://www.nowcoder.com/acm/contest/138/D来源:牛客网 小胖参加了人生中最重要的比赛——MedoC资格赛.MedoC的资格赛由m轮构成,使用常见的“加权 ...
随机推荐
- imperva 获取gti文档
SSH到设备(MX或GW) 以root用户身份登录MX和GW 运行“impctl support get-tech-info --last-server-archives=5 --caes-numbe ...
- log4j与commons-logging slf4j的关系
1. slf4j 他只提供一个核心slf4j api(就是slf4j-api.jar包),这个包只有日志的接口并没有实现 所以如果要使用就得再给它提供一个实现了些接口的日志包, ...
- 数据库-mysql函数
一:MySQL中提供了许多内置函数 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符.一个多字节字符算作一个单字符. 对于一个包含五个二字节字符集, LENGTH()返 ...
- [洛谷P2783]有机化学之神偶尔会做作弊
第一次做出来黑题祭 虽然感觉难度其实并不到黑题的难度 题解: 其实这道题并没用什么特别的知识,只是Tarjan求双联通分量和LCA的结合. 所以,我们可以很显然的发现(如此恶劣的词汇,逃 这道题其实就 ...
- SonarQube的安装、配置与使用(windows)
onarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 准备工作: 1.jdk(不再介绍) 2.sonarqube:htt ...
- CCF CSP 201312-3 最大的矩形
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...
- 何时调用getView?——从源码的角度给出解答
先来看ListView类中的makeAndAddView方法: 没有数据变化:从mRecycler中取得可视的view 数据有变化:obtainView /** * 获取视图填充到列表的item中去, ...
- hbase 性能调
一. HBase的通用优化 1 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整 ...
- Spark(十二)SparkSQL简单使用
一.SparkSQL的进化之路 1.0以前: Shark 1.1.x开始:SparkSQL(只是测试性的) SQL 1.3.x: SparkSQL(正式版本)+Datafram ...
- MySQL开发技巧
MySQL基础表和数据 如何进行行列转换 行转列 场景:报表统计(sum()).汇总显示表数据:select * from score; 希望达到的效果 cross join SQL如下: selec ...