• NOIP模拟赛 高级打字机


    【题目描述】

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

    请为这种高级打字机设计一个程序,支持如下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%

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int n,cnt=0;
     5 char S[100001];
     6 
     7 int main()
     8 {
     9     cin>>n;
    10     for(int i=1;i<=n;i++)
    11     {
    12         char t,x;
    13         int m;
    14         cin>>t;
    15         switch(t)
    16         {
    17         case 'T':
    18             cin>>x;
    19             S[++cnt]=x;
    20             break;
    21         case 'U':
    22             cin>>m;
    23             cnt-=m;
    24             break;
    25         case 'Q':
    26             cin>>m;
    27             cout<<S[m]<<endl;
    28             break;
    29         }
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    final和finally的区别
    ArrayList和LinkedList的区别
    collection和collections的区别
    第三次作业
    第二次作业
    第零次作业
    最后一次作业-- 总结报告
    第14、15教学周作业
    GridView去掉边框! 【转载于:http://magicpeng99.blog.sohu.com/】
    ASP.NET支持用Menu显示web.sitemap中定义好的网站链接 【转载】
  • 原文地址:https://www.cnblogs.com/InWILL/p/5971115.html
Copyright © 2020-2023  润新知