欲望以提升热忱,毅力以磨平高山!|

XichenOC

园龄:1个月粉丝:4关注:0

📂题解
🔖rope
2025-01-21 21:27阅读: 3评论: 0推荐: 0

UVA12538 自带版本控制功能的IDE Version Controlled IDE

自带版本控制功能的IDE Version Controlled IDE

题目翻译:

题目比较简单明了,直接在原题看即可。

思路:

又是一道可以用rope水掉的紫题

用一个 \(past[cnt]\)\(rope\) 来储存历史版本,没修改一次就储存一次,再用 \(now\) 来储存当前版本,其余操作没有什么区别

完整代码

#include<bits/stdc++.h>
#include<ext/rope>
using namespace std;
using namespace __gnu_cxx;
const int N=5e4+10;
char s[N];
int cnt,d;
crope now,past[N];
int main(){
    int n;
    scanf("%d",&n);
    while(n--){
        int op;
        scanf("%d",&op);
        if(op==1){
            int p;
            scanf("%d",&p);
            p-=d;
            scanf("%s",s);
            now.insert(p,s);
            past[++cnt]=now;
        }
        else if(op==2){
            int p,c;
            scanf("%d%d",&p,&c);
            p-=d;
            c-=d;
            now.erase(p-1,c);
            past[++cnt]=now;
        }
        else if(op==3){
            int v,p,c;
            scanf("%d%d%d",&v,&p,&c);
            v-=d;
            p-=d;
            c-=d;
            crope ans=past[v].substr(p-1,c);
            d+=count(ans.begin(),ans.end(),'c');
            cout<<ans<<endl;
        }
    }
}

rope讲解

本文作者:XichenOC

本文链接:https://www.cnblogs.com/XichenOC/p/18684471

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   XichenOC  阅读(3)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起