zoukankan      html  css  js  c++  java
  • bzoj1269: [AHOI2006]文本编辑器editor

    神奇玩意@mocha

    STL大法好!这个用了个rope

    rope的部分简单操作

    函数 功能
    push_back(x) 在末尾添加x
    insert(pos,x) 在pos插入x
    erase(pos,x) 从pos开始删除x个
    replace(pos,x) 从pos开始换成x
    substr(pos,x) 提取pos开始x个
    at(x)/[x] 访问第x个元素

    #include<cstdio> 
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    #include<ext/rope>
    using namespace std;
    using namespace __gnu_cxx;
    
    rope<char>a,b,t;
    char op[30],ss[2100000],rs[2100000];
    int main()
    {
        int n,k=0,x,len;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%s",op+1);
                 if(op[1]=='M')scanf("%d",&k);
            else if(op[1]=='P')k--;
            else if(op[1]=='N')k++;
            else if(op[1]=='G')printf("%c
    ",a[k]);
            else if(op[1]=='I')
            {
                scanf("%d",&x);len=a.length();
                for(int i=0;i<x;i++)
                {
                    ss[i]=getchar();
                    while(ss[i]=='
    ')ss[i]=getchar();
                    rs[x-i-1]=ss[i];
                }
                rs[x]=ss[x]=0;
                a.insert(k,ss);
                b.insert(len-k,rs);
            }
            else if(op[1]=='D')
            {
                scanf("%d",&x);len=a.length();
                a.erase(k,x);
                b.erase(len-k-x,x);
            }
            else if(op[1]=='R')
            {
                scanf("%d",&x);len=a.length();
                t=a.substr(k,x);
                a=a.substr(0,k)+b.substr(len-k-x,x)+a.substr(k+x,len-k-x);
                b=b.substr(0,len-k-x)+t+b.substr(len-k,k);
            }
        }
        return 0;
    }
  • 相关阅读:
    ubuntu LAMP的安装
    windows中安装liunx虚拟机
    jQuery Responsive OneByOne Slider Plugin
    轮播图收集
    移动端图片延迟加载插件
    图片幻灯插件
    小tip: base64:URL背景图片与web页面性能优化
    基于HTML5的可预览多图片Ajax上传
    字体平滑解决方案
    webstorm scss编译css配置
  • 原文地址:https://www.cnblogs.com/AKCqhzdy/p/8933126.html
Copyright © 2011-2022 走看看