BZOJ 1507 [NOI2003]Editor
Description
Input
输 入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作。其中: 为了使输入文件便于阅读,Insert操作的字符串中可能会插入一些回车符,请忽略掉它们(如果难以理解这句话,可以参考样例)。 除了回车符之外,输入文件的所有字符的ASCII码都在闭区间[32, 126]内。且行尾没有空格。 这里我们有如下假定: MOVE操作不超过50000个,INSERT和DELETE操作的总个数不超过4000,PREV和NEXT操作的总个数不超过200000。 所有INSERT插入的字符数之和不超过2M(1M=1024*1024),正确的输出文件长度不超过3M字节。 DELETE操作和GET操作执行时光标后必然有足够的字符。MOVE、PREV、NEXT操作必然不会试图把光标移动到非法位置。 输入文件没有错误。 对C++选手的提示:经测试,最大的测试数据使用fstream进行输入有可能会比使用stdio慢约1秒。
Output
输出文件editor.out的每行依次对应输入文件中每条GET指令的输出。
Sample Input
Insert 26
abcdefghijklmnop
qrstuv wxy
Move 15
Delete 11
Move 5
Insert 1
^
Next
Insert 1
_
Next
Next
Insert 4
.\/.
Get 4
Prev
Insert 1
^
Move 0
Get 22
Sample Output
abcde^_^f.\/.ghijklmno
1 #include<iostream> 2 #include<cstdio> 3 #include<ext/rope> 4 using namespace std; 5 using namespace __gnu_cxx;//没太懂 6 crope list; 7 char ch[3000005]; 8 int t,now; 9 int main(){ 10 scanf("%d",&t); 11 while (t--){ 12 char s[10];int x; 13 scanf("%s",s); 14 switch(s[0]){ 15 case 'M':scanf("%d",&now);break; 16 case 'P':now--;break; 17 case 'N':now++;break; 18 case 'I': 19 scanf("%d",&x); 20 for (int i=0;i<x;i++){ 21 ch[i]=getchar(); 22 while(ch[i]=='\n')ch[i]=getchar(); 23 ch[x]=0; 24 } 25 list.insert(now,ch); 26 break; 27 case 'D':scanf("%d",&x);list.erase(now,x);break; 28 case 'G':scanf("%d",&x);list.copy(now,x,ch);ch[x]=0;puts(ch); 29 } 30 } 31 }
转载于:https://www.cnblogs.com/wuminyan/p/5137915.html
BZOJ 1507 [NOI2003]Editor相关推荐
- BZOJ1507 [NOI2003]Editor
BZOJ1507 [NOI2003]Editor Description 很久很久以前,DOS3.x的程序员们开始对 EDLINEDLIN 感到厌倦. 于是,人们开始纷纷改用自己写的文本编辑器?? 多 ...
- BZOJ 1507 Editor
Description Input 输入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作.其中: 为了使输入文件便于阅读,Insert操作的字符串中可能会插入一些回车符,请忽略掉它 ...
- 【bzoj1507】[NOI2003]Editor
第二次写rope了 rope大法好!!! 1 #include<algorithm> 2 #include<iostream> 3 #include<ext/rope&g ...
- bzoj 乱刷计划 50/50
前言 话说第一个板刷计划由于种种原因而告一段落了..其实那一版还有很多题想做,那就只能放一放了 附上效果图一张(几乎每一题都在我博客有题解): 打算 可以复习,重做自己做过的题,不局限于没做过的 乱刷 ...
- BZOJ ac100题存档
不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...
- python 写入excel数据xlwt_用python包xlwt将数据写入Excel中
一般用两种格式的数据写入,不多说放上demo. 1.列表形式写入 import xlwt def data_write(file_path, datas): f = xlwt.Workbook() s ...
- BZOJ 1269: [AHOI2006]文本编辑器editor Splay
F.A.Qs Web Board Home ProblemSet Status Ranklist Contest ModifyUser yejinru(0) Logout 捐赠本站 Notice: ...
- bzoj 1269 editor
这个题和维修数列一比就简单了许多,只要把所谓的光标处理好就OK 了,就是字符串处理的时候比较麻烦,需要多调试一下.这个题不用回收空间了,不过插入的时候还是要递归建树再插入,这样可以防止树的深度过大导致 ...
- BZOJ刷题记录---提高组难度
BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...
- [NOI2003] 文本编辑器
洛谷题目链接:[NOI2003]文本编辑器 题目描述 很久很久以前, DOS3.xDOS3.xDOS3.x 的程序员们开始对 EDLINEDLINEDLIN 感到厌倦.于是,人们开始纷纷改用自己写的文 ...
最新文章
- 【网络安全】Penelope:一款功能强大的Shell处理工具
- 0x0800 IP数据包格式分析
- 被边缘化的“卓越亚马逊”
- leetcode279. 完全平方数
- 力扣1232.缀点成线
- 《算法精解:C语言描述》勘误
- 一墙之隔-看向世界和直面速度与激情
- H264视频通过RTMP直播 .
- Java Web实现 使用浏览器从服务器下载文件
- Web前端开发 icon图标 转 web字体图标
- 数字后端基本概念介绍drc
- mysql week函数参数_MySQL week()函数详解
- 最小生成树-Kruskal和Prim-JAVA代码
- CSDN学霸课表——一切皆为 JavaScript
- 快速入门electron之实现窗口拖拽
- Google 宣布废弃 LiveData.observe 方法
- 文件管理软件,不改变原名称,批量给文件名加序号的方法
- Opencores上的i2c controller core代码解析
- 第三讲:股票买卖 III
- 同元软控新一代复杂装备虚拟试验解决方案与实践
热门文章
- autocad.net QQ群:193522571 判断string中是否包含集合中所有的字符串
- 用FreeBSD与memcached建立分布式缓存服务器全程记录之memcached使用与安装
- logging模块(二十六)
- 一个简单SeekBar样式的例子
- 线程的sleep()方法和yield()方法有什么区别?
- 2017.4.18-morning
- 从键盘输入n个整数,求它们的最小公倍数
- 内存图片IOS app启动动画的实现
- 转载:VirtualizingStackPanel
- 台媒体:IBM PC将成特洛伊木马【ZZ】【另一个角度】