• 洛谷 U136244 反复横跳


    洛谷 U136244 反复横跳

    洛谷传送门

    题目背景

    SeawaySeawa**y喜欢反复横跳。并且,为了加强数学成绩,他喜欢在一群数上反复横跳。

    题目描述

    一开始,SeawaySeawa**y横跳的数列并没有数。现在,SeawaySeawa**y要开始横跳。他在横跳的过程中会产生以下几种操作:

    1 x 向横跳数列的末尾加入一个数x

    2 询问当前横跳数列的首元素和尾元素,如果当前数列为空,则输出0 0。

    3 询问当前横跳数列的长度。

    4 x在横跳数列的末尾删除x个元素。

    5 询问当前横跳数列是否为空,若是,输出1,若不是,输出0。

    6 清空当前横跳数列。

    7 x询问当前横跳数列的第x数为多少。

    输入格式

    输入的第一行有一个整数NN,代表SeawaySeawa**y横跳的次数。接下来的NN行,每行描述一个横跳操作。操作格式如题目所示。

    输出格式

    回答每个询问操作。并且,在所有横跳操作结束之后,输出这个横跳数列.


    命题背景:

    想练一下STL语法。然后出了这套水水的模板题。

    题解:

    用vector。A

    代码:

    #include<cstdio>
    #include<vector>
    using namespace std;
    int n;
    vector<int> v;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            int opt,x;
            scanf("%d",&opt);
            if(opt==1)
            {
                scanf("%d",&x);
                v.push_back(x);
            }
            else if(opt==2)
            {
                if(v.empty())
                    printf("0 0
    ");
                else
                    printf("%d %d
    ",v.front(),v.back());
            }
            else if(opt==3)
                printf("%d
    ",v.size());
            else if(opt==4)
            {
                scanf("%d",&x);
                while(x--)
                    v.pop_back();
            }
            else if(opt==5)
                printf("%d
    ",v.empty());
            else if(opt==6)
                v.clear();
            else
            {
                scanf("%d",&x);
                printf("%d
    ",v[x-1]);
            }
        }
        for(int i=0;i<v.size();i++)
            printf("%d ",v[i]);
        return 0;
    }
    
  • 相关阅读:
    Redis指令(2) ------String
    Redis指令(1) ------常用指令
    Redis数据类型
    Python set集合
    Python random 模块
    Python random 模块
    Python time 模块
    Python sys模块
    Python 递归函数
    Python 局部变量和全局变量
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13859042.html
Copyright © 2020-2023  润新知