• 模拟赛 Problem 1 高级打字机(type.cpp/c/pas)


    Problem 1 高级打字机(type.cpp/c/pas)

    【题目描述】

    早苗入手了最新的高级打字机。最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧。

    请为这种高级打字机设计一个程序,支持如下3种操作:

    1.T x:在文章末尾打下一个小写字母x。(type操作)

    2.U x:撤销最后的x次修改操作。(Undo操作)

    (注意Query操作并不算修改操作)

    3.Q x:询问当前文章中第x个字母并输出。(Query操作)

    文章一开始可以视为空串。

     

    【输入格式】

    第1行:一个整数n,表示操作数量。

    以下n行,每行一个命令。保证输入的命令合法。

     

    【输出格式】

    每行输出一个字母,表示Query操作的答案。

     

    【样例输入】

    7

    T a

    T b

    T c

    Q 2

    U 2

    T c

    Q 2

    【样例输出】

    b

    c

    【数据范围】

    对于40%的数据 n<=200;

    对于100%的数据 n<=100000;保证Undo操作不会撤销Undo操作。

    <高级挑战>

    对于200%的数据 n<=100000;Undo操作可以撤销Undo操作。

    <IOI挑战>

    必须使用在线算法完成该题。

    思路:蒟蒻之会前100%的模拟。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define MAXN 100010
    using namespace std;
    int n,last;
    char num[MAXN];
    int main(){
        freopen("type.in","r",stdin);
        freopen("type.out","w",stdout);
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            char s;char x;
            cin>>s;
            if(s=='T'){ cin>>x;last++;num[last]=x; }
            else if(s=='U'){ int xx;cin>>xx;last=last-xx; }
            else if(s=='Q'){ int xx;cin>>xx;cout<<num[xx]<<endl; }
        }
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    JNDI使用小记
    Python基础之字符串
    openstack装B之路http协议
    openstack装B之路keystone
    Python基础之列表
    openstack装B之路Keystone部署以及操作
    openstack装B之路网关协议
    纵表与横表互转的SQL
    Asp.Net请求管道中的19个事件
    jquery ajax post get
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8966014.html
Copyright © 2020-2023  润新知