NOIP 2017 时间复杂度 (模拟)
题目大意:略
傻了吧唧的我wa了好几次
我的模拟功底真的不咋地
linux下用gets会报错,我用的fgets
1 #include <string> 2 #include "stdio.h" 3 #include <cstring> 4 #include <iostream> 5 #include <algorithm> 6 #define ll long long 7 #define N 1010 8 #define rint register int 9 #define ll long long 10 #define il inline 11 #define idx(x) (x-'a'+1) 12 #define idg(x) (x-'0') 13 using namespace std; 14 //re 15 int T,n,cnt,j; 16 int use[30]; 17 char str[110][20]; 18 inline bool isdig(char c) 19 {return ('0'<=c&&c<='9')?1:0;} 20 int dfs() 21 { 22 int ans=0,now=j,val=0,cal=0; 23 if(str[j][0]=='E') return -1; 24 if(str[j][0]=='F') 25 { 26 if(use[idx(str[j][2])]) 27 return -1; 28 use[idx(str[j][2])]=1; 29 while(str[j+1][0]=='F') 30 { 31 j++,cal=dfs(); 32 if(cal==-1) return -1; 33 ans=max(ans,cal); 34 } 35 int k=4; 36 while(isdig(str[now][k])) 37 val=val*10+idg(str[now][k]),k++; 38 k++; 39 if(str[now][4]=='n'){ 40 if(str[now][6]!='n') ans=0; 41 }else if(!isdig(str[now][k])){ 42 ans++; 43 }else{ 44 int w=0; 45 while(isdig(str[now][k])) 46 w=w*10+idg(str[now][k]),k++; 47 if(val>w) ans=0; 48 } 49 } 50 use[idx(str[now][2])]=0; 51 j++; 52 if(str[j][0]!='E') return -1; 53 else return ans; 54 } 55 56 int main() 57 { 58 //freopen("complexity6.in","r",stdin); 59 scanf("%d",&T); 60 for(int t=1;t<=T;t++) 61 { 62 int q=0; 63 scanf("%d",&n); 64 memset(str,0,sizeof(str)); 65 memset(use,0,sizeof(use)); 66 scanf("%s\n",str[0]); 67 for(int i=1;i<=n;i++) 68 fgets(str[i],20,stdin); 69 int ret=0,ans=0;j=1; 70 for(;j<=n;j++){ 71 ans=dfs(); 72 if(ans==-1){ret=-1;printf("ERR\n");break;} 73 else {ret=max(ret,ans);} 74 } 75 if(ret==-1) continue; 76 int k=0,flag=0; 77 while(1){ 78 if(str[0][k]=='n') flag=1; 79 if(!isdig(str[0][k])) 80 {k++;continue;} 81 while(isdig(str[0][k])) 82 q=q*10+idg(str[0][k]),k++; 83 break; 84 } 85 if(flag==0) q=0; 86 if(ret==q) printf("Yes\n"); 87 else printf("No\n"); 88 } 89 return 0; 90 }
转载于:https://www.cnblogs.com/guapisolo/p/9734137.html
NOIP 2017 时间复杂度 (模拟)相关推荐
- NOIP 2017 Day1 T2 时间复杂度 complexity - 模拟题 题解
作者@豪哒哒哒HaoDaDaDa 转载自简书@豪哒哒哒HaoDaDaDa-简书-NOIP 2017 Day1 T2 时间复杂度 (有一个月没有写简书了-) (这次终于开始拿Markdown写了,富文本 ...
- 【游记】NOIP 2017
时间:2017.11.11~2017.11.12 地点:广东省广州市第六中学 Day1 T1:看到题目,心想这种题目也能放在T1? 这个结论我之前遇到过至少3次,自己也简单证明过.初见是NOIP200 ...
- NOIP 2017 游记
大家都写,我也来凑热闹 PS:用双拼可真是累啊.. (用双拼打了四行以后我决定以后再也不用双拼了!) DAY 0 颓废日,上午跑到机房颓废可真是爽 但是我坚持自我 day-2时下定决心买了阿里云的服务 ...
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- NOIP 2017 提高组 初赛
NOIP 2017 提高组 初赛 做题感悟. 五.完善程序,是本张试卷最简单的题目,两道题做完,大约花了10分钟.2017-10-17 18:25 对了答案,破天荒,全对. 1.(大整数除法) 有如下 ...
- ◆竞赛题目◆◇NOIP 2017 普及组◇ 图书管理员
◇NOIP 2017 普及组◇图书管理员 Description 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个 ...
- 在9012年1月22日观【NOIP 2017】
总结:两句话 不会高级算法就搜呗 使劲搜,使劲剪 暴力整起嘛,搜索来起嘛 进入正题 NOIP 2017 D1T1 听说是一道数学竞赛原题 我可要感谢您啊CCF,在学信奥的同时也可以学数竞 现在我来说说 ...
- 【NOIP 2017普及组】 图书管理员
[NOIP 2017普及组] 图书管理员 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个正整数.如果一 ...
- 计蒜客 时间复杂度 (模拟) 洛谷 P3952 时间复杂度
链接 : Here! 思路 : 这是一道大模拟, 区分好情况就没问题了 循环构成部分 : $F , x , i , j$ 和 $E$ , 需要注意的是 $i , j$, - 分析 $i, j$ 的情况 ...
最新文章
- iphone刷基带_iphone7基带坏了怎么办,iphone7基带修复多少钱
- STM32学习——GPIO的操作
- 图像 super-resolution restruction 的各种主流实现方式
- 嵌入式Linux移植实验
- 机器学习与医学应用基础(超星尔雅学习通)--答案
- 汽车诊断之UDS入门-0x19 0x06服务
- 无线电波在介质中的传播速度计算公式和印刷电路板(PCB)的特性阻抗与特性阻抗控制
- 服务器虚拟化的工作原理,虚拟化技术及其原理
- 【UNIX环境高级编程】
- java8(三)Stream API
- 【尚硅谷Java笔记+踩坑】Git(分布式版本控制工具)
- 图像数字化的两种方式
- PTA 浙大版《C语言程序设计(第3版)》题目集
- [小说]魔王冢(20)解密
- 集成电路设计-电路网表写法
- 谈谈FRID 门禁系统
- 【方法】 如何批量将RAR或其他压缩格式转换成ZIP?
- 基于FPGA的键盘扫描程序的设计
- Facebook广告投放技巧
- imitation learning 前沿论文