• 高级打字机


    高级打字机

    【题目描述】

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

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

    注意:

    这个题我只过了5个点,如果想全过要用Tire+倍增寻祖(不会啊);

    前五个点可以用数组模拟栈。

    50分的程序:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    char a[100001],b;
    int fail,n,x;
    int main()
    {
    	int i,j;
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    	{
    		cin>>b;
    		if(b=='T')
    		{
    			fail++;
    			scanf(" %c",&a[fail]);//因为b和x之间有空格所以先输入一个空格;
    		}
    		if(b=='U')
    		{
    			cin>>x;
    			fail=fail-x;
    		}
    		if(b=='Q')
    		{
    			cin>>x;
    			printf("%c
    ",a[x]);
    		}
    	}
    	return 0;
    }
    

    别人ac的程序:

    地址:shenben的博客园

    递交地址:

    洛谷  codevs

  • 相关阅读:
    MVB设备分类
    MVB帧
    也说析构---C++
    oracle中以dba_、user_、v$_、all_、session_、index_开头
    查看Oracle的表中有哪些索引(用user_indexes和user_ind_columns)
    Spark_总结五
    Spring编程式和声明式事务实例讲解
    缓存穿透,缓存击穿,缓存雪崩解决方案分析
    redis持久化2
    redis的持久化方式
  • 原文地址:https://www.cnblogs.com/jyhywh/p/5598539.html
Copyright © 2020-2023  润新知