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

 #include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<memory.h>
#include<cstdlib>
#include<vector>
using namespace std;
const int MAXN=;
const double eps=1e-;
const int inf=0x3f3f3f3f; string s,ss,cs;
vector<int>pos;
int mode;
int now,m;
void L()
{
if(now>)
now--;
} void R()
{
if(now<ss.length())
now++;
} void S()
{
mode=!mode;
pos.clear();
}
void C()
{
pos.push_back(now);
if(pos.size()==)
{
sort(pos.begin(),pos.end());
cs=ss.substr(pos[],pos[]-pos[]);
pos.clear();
}
}
void D()
{
if(pos.size())
{
pos.push_back(now);
sort(pos.begin(),pos.end());
ss.erase(ss.begin()+pos[],ss.begin()+pos[]);
now=pos[];
pos.clear();
}
else if(now<ss.length())
{
ss.erase(ss.begin()+now,ss.begin()+now+);
}
} void B()
{
if(now>)
{
ss.erase(ss.begin()+now-,ss.begin()+now);
now--;
}
pos.clear();
} void V()
{
if(cs.length())
{
if(!mode)
{
if(ss.length()+cs.length()<=m)
{
int len=cs.length();
for(int i=; i<len; i++,now++)
{
ss.insert(ss.begin()+now,cs[i]);
}
}
}
else
{
if(now+cs.length()+<=m)
{
int len1=cs.length();
int len2=ss.length();
for(int i=; i<len1; i++,now++)
{
if(now>=len2)
ss.insert(ss.begin()+now,cs[i]);
else
ss[now]=cs[i];
}
}
}
}
pos.clear();
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
cin>>m>>s;
int len=s.length();
mode=;
now=;
ss.clear();
cs.clear();
pos.clear();
for(int i=; i<len&&m; i++)
{
if(s[i]=='L')
L();
else if(s[i]=='R')
R();
else if(s[i]=='C')
C();
else if(s[i]=='V')
V();
else if(s[i]=='D')
D();
else if(s[i]=='B')
B();
else if(s[i]=='S')
S();
else
{
if(mode&&now<ss.length())
{
ss[now++]=s[i];
}
else if(ss.length()<m)
{
ss.insert(ss.begin()+now,s[i]);
now++;
}
pos.clear();
}
}
if(ss.size())
{
cout<<ss<<endl;
}
else
cout<<"NOTHING"<<endl;
}
return ;
}

最新文章

  1. C# 本质论 第一章 C#概述
  2. 部署解决方案包 (SharePoint Server 2010)
  3. C#一些小技巧
  4. Adb工具常用操作(一)
  5. Struts2 对Action中所有方法进行输入校验、单个方法进行校验
  6. text-indent: -999px;是什么意思
  7. hdu_5676_ztr loves lucky numbers
  8. Spring 事务管理笔记
  9. python之作业--------购物车优化
  10. KVM虚拟化使用详解--技术流ken
  11. DEDECMS织梦文章摘要批量更改方法
  12. BZOJ1757 : Apple 偷苹果
  13. UOJ#310. 【UNR #2】黎明前的巧克力(FWT)
  14. pycharm 破解密码
  15. CentOS安装和配置Rsync进行文件同步
  16. Angular4.0 项目报错:Unexpected value xxxComponent&#39; declared by the module &#39;xxxxModule&#39;. Please add a @Pipe...
  17. 几种数据格式的处理 - Python
  18. 搭建SpringBoot、Jsp支持学习笔记
  19. 知乎网的CSS命名规律研究
  20. Linux之计划任务

热门文章

  1. hadoop 错误处理机制
  2. MVC4中Ajax.BeginForm OnSuccess 不执行以及控制器返回JsonResult 提示下载的原因
  3. About javascript closure
  4. 以守护进程方式启动firefly
  5. Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应
  6. Chp2: Linked List
  7. 利用VS2005进行dump文件调试
  8. 2013 Multi-University Training Contest 4 Who&#39;s Aunt Zhang
  9. hibernate 数据行数统计 count(*)
  10. adobe 蛋疼的套装, 想安装一个Flash Professional CS6,标准版还没有...