NOI2003Editor

2014年7月31日2,39115

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

15
Insert 26
abcdefghijklmnop
qrstuv wxy
Move 16
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

题解

可以用ext/rope真是极好的

stl中的****(T T 楼下有人说是可持久化平衡树)

 

  • maoxiaohan19992014年8月2日 下午3:10 回复

    咳咳,rope不是块状链表,是可持久化平衡树……

    #1  
  • Mektpoy2014年8月2日 下午4:30 回复

    确实是可持久化平衡树。。

    #2  
  • Mektpoy2014年8月2日 下午4:31 回复

    可以定义成rope <int> r

    #3  
    • hzwer2014年8月2日 下午5:04 回复
      admin

      给金牌爷跪烂了

      #31
    • wulala2014年10月27日 下午8:59 回复

      rope<int> 和 crope有区别吧,黄学长的代码改成rope<int>好像就编译不过了

      #31
      • hzwer2014年10月27日 下午9:09 回复
        admin

        这题似乎不是int吧。。

        #32
        • wulala2014年10月27日 下午9:12 回复

          我是脑残=-=

          #33
        • wulala2014年10月27日 下午9:19 回复

          这个考试的时候可以用吗

          #33
          • hzwer2014年10月27日 下午9:23
            admin

            可以吧

            #34
          • wulala2014年10月27日 下午9:26

            虽然高二,但什么都不知道,今天觉得加博主博客为书签,在秋季学期好好看看,补补自己的算法。。。太弱了,什么都不知道

            #34
          • hzwer2014年10月27日 下午11:09
            admin

            继续装

            #34
  • 尹一航2014年12月3日 下午9:54 回复

    orz神STL

    #4  
  • syk_____2015年6月6日 上午10:36 回复

    这玩意考试的时候居然能用- –

    #5