Parencodings

题意:

由括号序列S可经P规则和W规则变形为P序列和W序列。

p规则是:pi是第i个右括号左边的左括号的数;

w规则是:wi是第i右括号与它匹配的左括号之间右括号的数(其中包括它本身)。

题解:

这题真的好简单,数据也小,算是一个增加了我信心的题吧。 1是左括号,2是右括号。

代码:

  1. #include <vector>
  2. #include <cstdio>
  3. #include <string>
  4. #include <cstdlib>
  5. #include <cstring>
  6. #include <iostream>
  7. #include <algorithm>
  8. using namespace std;
  9. const int INF=0x3f3f3f3f;
  10. typedef long long ll;
  11. #define PU puts("");
  12. #define PI(A) printf("%d\n",A)
  13. #define SI(N) scanf("%d",&(N))
  14. #define SII(N,M) scanf("%d%d",&(N),&(M))
  15. #define cle(a,val) memset(a,(val),sizeof(a))
  16. #define rep(i,b) for(int i=0;i<(b);i++)
  17. #define Rep(i,a,b) for(int i=(a);i<=(b);i++)
  18. #define reRep(i,a,b) for(int i=(a);i>=(b);i--)
  19. const double EPS= 1e-9 ;
  20. /* ///////////////////////// C o d i n g S p a c e ///////////////////////// */
  21. const int MAXN= 20 + 9 ;
  22. int N;
  23. vector<int > vei;
  24. int main()
  25. {
  26. int T;
  27. SI(T);
  28. while(T--)
  29. {
  30. SI(N);
  31. int k=1;
  32. rep(i,N)
  33. {
  34. int x;
  35. SI(x);
  36. for (int j=k;j<=x;j++)
  37. {
  38. vei.push_back(1);
  39. }
  40. vei.push_back(2);
  41. k=x+1;
  42. }
  43. vector<int > vere;
  44. int d=vei.size();
  45. for (int i=d-1;i>=0;i--)
  46. {
  47. if (vei[i]==2)
  48. {
  49. int ans=0;
  50. int cnt1=0,cnt2=0;
  51. for (int u=i;u>=0;u--)
  52. {
  53. if (vei[u]==2)
  54. {
  55. cnt2++;
  56. ans++;
  57. }
  58. else
  59. {
  60. cnt1++;
  61. }
  62. if (cnt1==cnt2) break;
  63. }
  64. vere.push_back(ans);
  65. }
  66. }
  67. for (int i=vere.size()-1;i>=0;i--) printf("%d%c",vere[i],i==0?'\n':' ');
  68. vei.clear();
  69. }
  70. return 0;
  71. }

hdu 1361 Parencodings 简单模拟的更多相关文章

  1. hdu 1361.Parencodings 解题报告

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1361 题目意思: 根据输入的P-sequence , 输出对应的W-sequence.   P-se ...

  2. HDU 1361 Parencodings(栈)

    题目链接 Problem Description Let S = s1 s2 … s2n be a well-formed string of parentheses. S can be encode ...

  3. HDU 4772 Zhuge Liang&#39;s Password (简单模拟题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4772 题面: Zhuge Liang's Password Time Limit: 2000/1000 ...

  4. 【HDU 4452 Running Rabbits】简单模拟

    两只兔子Tom和Jerry在一个n*n的格子区域跑,分别起始于(1,1)和(n,n),有各自的速度speed(格/小时).初始方向dir(E.N.W.S)和左转周期turn(小时/次). 各自每小时往 ...

  5. (hdu step 8.1.6)士兵队列训练问题(数据结构,简单模拟——第一次每2个去掉1个,第二次每3个去掉1个.知道队伍中的人数&lt;=3,输出剩下的人 )

    题目: 士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  6. HDU 4509 湫湫系列故事——减肥记II (简单模拟)

    题意:一天一共有1440分钟,主人公每天有n件事要做,给出这n件事开始跟结束的时间,然后让你求出,空闲的时间的总分钟数是多少. 解题报告:简单模拟,只要开个一维数组标记那个每个分钟是否是有事的就可以了 ...

  7. java web学习总结(二十二) -------------------简单模拟SpringMVC

    在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...

  8. WPF简单模拟QQ登录背景动画

    介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...

  9. HDU 2085 核反应堆 --- 简单递推

    HDU 2085 核反应堆 /* HDU 2085 核反应堆 --- 简单递推 */ #include <cstdio> ; long long a[N], b[N]; //a表示高能质点 ...

随机推荐

  1. Spring源码学习之:你不知道的spring注入方式

    前言 在Spring配置文件中使用XML文件进行配置,实际上是让Spring执行了相应的代码,例如: 使用<bean>元素,实际上是让Spring执行无参或有参构造器 使用<prop ...

  2. VGG-19 和 VGG-16 的 prototxt文件

    VGG-19 和 VGG-16 的 prototxt文件  VGG-19 和 VGG-16 的 prototxt文件 VGG-16:prototxt 地址:https://gist.github.co ...

  3. GUI、GUILayout、EditorGUI、EditorGUILayout

    GUI GUI.BeginGroup(rect) //在里面画的控件,将以这个GroupRect的左上角为原点,仅此而已 GUI.EndGroup() GUILayout GUILayout.Begi ...

  4. mysql学习之-密码管理(默认密码,修改密码,解决忘记密码)

    1. mysql安装后默认没有密码,初始化安装后默认密码登录,需要马上修改root密码.[root@mysql ~]# cat /root/.mysql_secret    --查看root账号密码# ...

  5. MySQL 用户与授权管理详解

    大纲 一.前言 二.创建用户并授权 三.GRANT语句的种类 四.撤权并删除用户 一.前言 做为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能做 ...

  6. 大白话系列之C#委托与事件讲解(二)

    什么是事件?EVENT?点击事件?加载事件?一连串的模糊的概念冲击着我们弱小的脑袋 那我们首先来看一下比较正统的感念吧: 事件是类在发生其关注的事情时用来提供通知的一种方式. 事件的发生一般都牵扯2个 ...

  7. mysql+mybatis 插入可递增字段库表操作

    mysql本身类型介绍: BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 70 ...

  8. java 中的断言assert的使用

    一.assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大的革新. 从理论上来说,通过 assertion方式可以证明程 ...

  9. 将Xml或Json生成类的最简单方式

      来源于 http://stackoverflow.com/questions/3187444/convert-xml-string-to-object

  10. linux工具之dracut

    这是一个工具类,不是一个后台服务类 centos7.2-minimal就下面三个包 [root@1st-kvm ~]# rpm -qa|grep dracutdracut-config-rescue- ...