借用大牛的一张图片:模拟

  1. #include<cstdio>
  2. #include<cmath>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<iostream>
  6. #include<memory.h>
  7. #include<cstdlib>
  8. #include<vector>
  9. using namespace std;
  10. const int MAXN=;
  11. const double eps=1e-;
  12. const int inf=0x3f3f3f3f;
  13.  
  14. string s,ss,cs;
  15. vector<int>pos;
  16. int mode;
  17. int now,m;
  18. void L()
  19. {
  20. if(now>)
  21. now--;
  22. }
  23.  
  24. void R()
  25. {
  26. if(now<ss.length())
  27. now++;
  28. }
  29.  
  30. void S()
  31. {
  32. mode=!mode;
  33. pos.clear();
  34. }
  35. void C()
  36. {
  37. pos.push_back(now);
  38. if(pos.size()==)
  39. {
  40. sort(pos.begin(),pos.end());
  41. cs=ss.substr(pos[],pos[]-pos[]);
  42. pos.clear();
  43. }
  44. }
  45. void D()
  46. {
  47. if(pos.size())
  48. {
  49. pos.push_back(now);
  50. sort(pos.begin(),pos.end());
  51. ss.erase(ss.begin()+pos[],ss.begin()+pos[]);
  52. now=pos[];
  53. pos.clear();
  54. }
  55. else if(now<ss.length())
  56. {
  57. ss.erase(ss.begin()+now,ss.begin()+now+);
  58. }
  59. }
  60.  
  61. void B()
  62. {
  63. if(now>)
  64. {
  65. ss.erase(ss.begin()+now-,ss.begin()+now);
  66. now--;
  67. }
  68. pos.clear();
  69. }
  70.  
  71. void V()
  72. {
  73. if(cs.length())
  74. {
  75. if(!mode)
  76. {
  77. if(ss.length()+cs.length()<=m)
  78. {
  79. int len=cs.length();
  80. for(int i=; i<len; i++,now++)
  81. {
  82. ss.insert(ss.begin()+now,cs[i]);
  83. }
  84. }
  85. }
  86. else
  87. {
  88. if(now+cs.length()+<=m)
  89. {
  90. int len1=cs.length();
  91. int len2=ss.length();
  92. for(int i=; i<len1; i++,now++)
  93. {
  94. if(now>=len2)
  95. ss.insert(ss.begin()+now,cs[i]);
  96. else
  97. ss[now]=cs[i];
  98. }
  99. }
  100. }
  101. }
  102. pos.clear();
  103. }
  104.  
  105. int main()
  106. {
  107. int T;
  108. scanf("%d",&T);
  109. while(T--)
  110. {
  111. cin>>m>>s;
  112. int len=s.length();
  113. mode=;
  114. now=;
  115. ss.clear();
  116. cs.clear();
  117. pos.clear();
  118. for(int i=; i<len&&m; i++)
  119. {
  120. if(s[i]=='L')
  121. L();
  122. else if(s[i]=='R')
  123. R();
  124. else if(s[i]=='C')
  125. C();
  126. else if(s[i]=='V')
  127. V();
  128. else if(s[i]=='D')
  129. D();
  130. else if(s[i]=='B')
  131. B();
  132. else if(s[i]=='S')
  133. S();
  134. else
  135. {
  136. if(mode&&now<ss.length())
  137. {
  138. ss[now++]=s[i];
  139. }
  140. else if(ss.length()<m)
  141. {
  142. ss.insert(ss.begin()+now,s[i]);
  143. now++;
  144. }
  145. pos.clear();
  146. }
  147. }
  148. if(ss.size())
  149. {
  150. cout<<ss<<endl;
  151. }
  152. else
  153. cout<<"NOTHING"<<endl;
  154. }
  155. return ;
  156. }

2015北京网络赛B题 Mission Impossible 6的更多相关文章

  1. 2015北京网络赛 G题 Boxes bfs

    Boxes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingonl ...

  2. 2015北京网络赛 H题 Fractal 找规律

    Fractal Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingo ...

  3. hihocoder 1236(2015北京网络赛 J题) 分块bitset乱搞题

    题目大意: 每个人有五门课成绩,初始给定一部分学生的成绩,然后每次询问给出一个学生的成绩,希望知道在给定的一堆学生的成绩比这个学生每门都低或者相等的人数 因为强行要求在线查询,所以题目要求,每次当前给 ...

  4. 2015北京网络赛A题The Cats' Feeding Spots

    题意:给你一百个点,找个以这些点为中心的最小的圆,使得这个圆恰好包含了n个点,而且这个圆的边界上并没有点 解题思路:暴力枚举每个点,求出每个点到其他点的距离,取第n大的点,判断一下. #include ...

  5. 2015北京网络赛 A题 The Cats' Feeding Spots 暴力

    The Cats' Feeding Spots Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acm ...

  6. 2015北京网络赛 Couple Trees 倍增算法

    2015北京网络赛 Couple Trees 题意:两棵树,求不同树上两个节点的最近公共祖先 思路:比赛时看过的队伍不是很多,没有仔细想.今天补题才发现有个 倍增算法,自己竟然不知道.  解法来自 q ...

  7. 2015北京网络赛 D-The Celebration of Rabbits 动归+FWT

    2015北京网络赛 D-The Celebration of Rabbits 题意: 给定四个正整数n, m, L, R (1≤n,m,L,R≤1000). 设a为一个长度为2n+1的序列. 设f(x ...

  8. 2015北京网络赛 J Scores bitset+分块

    2015北京网络赛 J Scores 题意:50000组5维数据,50000个询问,问有多少组每一维都不大于询问的数据 思路:赛时没有思路,后来看解题报告也因为智商太低看了半天看不懂.bitset之前 ...

  9. ACM-ICPC 2018北京网络赛-A题 Saving Tang Monk II-优先队列

    做法:优先队列模板题,按步数从小到大为优先级,PASS掉曾经以相同氧气瓶走过的地方就好了 题目1 : Saving Tang Monk II 时间限制:1000ms 单点时限:1000ms 内存限制: ...

随机推荐

  1. uva 11461

    简单 打个表 case数不超过200 数据比较水  木有超时的风险~~ /*************************************************************** ...

  2. spoj 390

    简单题  记得uva上有个一样的  画个图就好了 #include <cstdio> #include <cmath> const double pi = acos(-1); ...

  3. uva 10051

    将每一个分解为六个两面的 简单地dp 回溯输出路径..... #include <cstdio> #include <cstring> #include <cmath&g ...

  4. poj 1095 Trees Made to Order 卡特兰数

    这题用到了卡特兰数,详情见:http://www.cnblogs.com/jackge/archive/2013/05/19/3086519.html 解体思路详见:http://blog.csdn. ...

  5. Java Web开发 之小张老师总结EL、JSP、Servlet变量

    EL 11 JSP 9 Servlet JSP类别 pageContext pageContext * 作用域 pageScope pageContext.getAttribute() * reque ...

  6. Android:实现无标题的两种方法

    实现无标题的两种方法:配置xml文件和编写代码设置 1.在AndroidManifest.xml文件中进行配置 实现全屏效果: android:theme="@android:style/T ...

  7. POJ3260——The Fewest Coins(多重背包+完全背包)

    The Fewest Coins DescriptionFarmer John has gone to town to buy some farm supplies. Being a very eff ...

  8. 转XMLHelper

    http://www.cnblogs.com/lixyvip/archive/2009/09/16/1567929.html using System; using System.Collection ...

  9. (转)Decision Tree

    Decision Tree:Analysis 大家有没有玩过猜猜看(Twenty Questions)的游戏?我在心里想一件物体,你可以用一些问题来确定我心里想的这个物体:如是不是植物?是否会飞?能游 ...

  10. 【HDOJ】3473 Minimum Sum

    划分树解.主席树解MLE. /* 3473 */ #include <iostream> #include <sstream> #include <string> ...