题目大意:略

傻了吧唧的我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 时间复杂度 (模拟)相关推荐

  1. NOIP 2017 Day1 T2 时间复杂度 complexity - 模拟题 题解

    作者@豪哒哒哒HaoDaDaDa 转载自简书@豪哒哒哒HaoDaDaDa-简书-NOIP 2017 Day1 T2 时间复杂度 (有一个月没有写简书了-) (这次终于开始拿Markdown写了,富文本 ...

  2. 【游记】NOIP 2017

    时间:2017.11.11~2017.11.12 地点:广东省广州市第六中学 Day1 T1:看到题目,心想这种题目也能放在T1? 这个结论我之前遇到过至少3次,自己也简单证明过.初见是NOIP200 ...

  3. NOIP 2017 游记

    大家都写,我也来凑热闹 PS:用双拼可真是累啊.. (用双拼打了四行以后我决定以后再也不用双拼了!) DAY 0 颓废日,上午跑到机房颓废可真是爽 但是我坚持自我 day-2时下定决心买了阿里云的服务 ...

  4. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  5. NOIP 2017 提高组 初赛

    NOIP 2017 提高组 初赛 做题感悟. 五.完善程序,是本张试卷最简单的题目,两道题做完,大约花了10分钟.2017-10-17 18:25 对了答案,破天荒,全对. 1.(大整数除法) 有如下 ...

  6. ◆竞赛题目◆◇NOIP 2017 普及组◇ 图书管理员

    ◇NOIP 2017 普及组◇图书管理员 Description 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个 ...

  7. 在9012年1月22日观【NOIP 2017】

    总结:两句话 不会高级算法就搜呗 使劲搜,使劲剪 暴力整起嘛,搜索来起嘛 进入正题 NOIP 2017 D1T1 听说是一道数学竞赛原题 我可要感谢您啊CCF,在学信奥的同时也可以学数竞 现在我来说说 ...

  8. 【NOIP 2017普及组】 图书管理员

    [NOIP 2017普及组] 图书管理员 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个正整数.如果一 ...

  9. 计蒜客 时间复杂度 (模拟) 洛谷 P3952 时间复杂度

    链接 : Here! 思路 : 这是一道大模拟, 区分好情况就没问题了 循环构成部分 : $F , x , i , j$ 和 $E$ , 需要注意的是 $i , j$, - 分析 $i, j$ 的情况 ...

最新文章

  1. iphone刷基带_iphone7基带坏了怎么办,iphone7基带修复多少钱
  2. STM32学习——GPIO的操作
  3. 图像 super-resolution restruction 的各种主流实现方式
  4. 嵌入式Linux移植实验
  5. 机器学习与医学应用基础(超星尔雅学习通)--答案
  6. 汽车诊断之UDS入门-0x19 0x06服务
  7. 无线电波在介质中的传播速度计算公式和印刷电路板(PCB)的特性阻抗与特性阻抗控制
  8. 服务器虚拟化的工作原理,虚拟化技术及其原理
  9. 【UNIX环境高级编程】
  10. java8(三)Stream API
  11. 【尚硅谷Java笔记+踩坑】Git(分布式版本控制工具)
  12. 图像数字化的两种方式
  13. PTA 浙大版《C语言程序设计(第3版)》题目集
  14. [小说]魔王冢(20)解密
  15. 集成电路设计-电路网表写法
  16. 谈谈FRID 门禁系统
  17. 【方法】 如何批量将RAR或其他压缩格式转换成ZIP?
  18. 基于FPGA的键盘扫描程序的设计
  19. Facebook广告投放技巧
  20. imitation learning 前沿论文

热门文章

  1. android 倒计时的控件,以动画的形式平滑的完成数字的过度
  2. 云后台Bmob的一些资料
  3. Qt坐标系以及自定义可移动控件
  4. Scratch-介绍“克隆”
  5. mybatis基础(一)
  6. C++模拟实现Objective-C协议和代理模式
  7. Event/window.Event属性和方法
  8. Robotframework与unittest对比
  9. python 入门第二课2 file的文件操作
  10. BZOJ2938: [Poi2000]病毒(AC自动机)