codevs 4159 hzwer的迷の数列

题目描述 Description

hzwer找了一个人畜无害的迷の数列……

现在hzwer希望对这个数列进行一些操作,请你来回答hzwer的问题。

操作一:查询第i个数的大小

操作二:把第i个数的大小改成x

操作三:将整个序列反转。即把第i个数放到第n-i+1个。

输入描述 Input Description

输入数据第一行两个数n,m,表示数列长度和操作数。

第二行n个数,表示n个元素初始值。

以下m行,每行开头一个数opr,表示操作种类。

opr=1,则后面接一个数i,表示查询第i个数大小。

opr=2,则后面接两个数I,x,表示第i个数改成x。

opr=3,表示序列反转。

输出描述 Output Description

对于每个询问,输出答案。

样例输入 Sample Input

4 6

1 3 2 4

1 3

2 2 6

3

2 1 3

1 3

1 1

样例输出 Sample Output

2

6

3

数据范围及提示 Data Size & Hint

对于20%数据,1<=n,m<=10.

对于40%数据,1<=n,m<=100.

对于60%数据,1<=n,m<=1000.

对于100%数据,1<=n,m<=100000,1<=a[i]<=100000.

思路:

模拟,记录是否被反转。

代码:

#include<cstdio>
using namespace std;
int n,m,a[100001];
bool flag;
int main()
{
    int i,j,x,y,z;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
      scanf("%d",&a[i]);
    for(i=1;i<=m;i++)
    {
        scanf("%d",&x);
        if(x==1)
        {
            scanf("%d",&y);
            if(!flag)
              printf("%d\n",a[y]);
            else
              printf("%d\n",a[n-y+1]);
        }
        else
          if(x==2)
          {
              scanf("%d%d",&y,&z);
            if(!flag)
              a[y]=z;
            else
              a[n-y+1]=z;
          }
          else
            flag=!flag;
    }
    return 0;
}
时间: 2024-10-17 01:35:45

codevs 4159 hzwer的迷の数列的相关文章

2015.9.11模拟赛 codevs 4159【hzwer的迷の数列】

题目描述 Description hzwer找了一个人畜无害的迷の数列…… 现在hzwer希望对这个数列进行一些操作,请你来回答hzwer的问题. 操作一:查询第i个数的大小 操作二:把第i个数的大小改成x 操作三:将整个序列反转.即把第i个数放到第n-i+1个. 输入描述 Input Description 输入数据第一行两个数n,m,表示数列长度和操作数. 第二行n个数,表示n个元素初始值. 以下m行,每行开头一个数opr,表示操作种类. opr=1,则后面接一个数i,表示查询第i个数大小.

hzwer与逆序对

codevs——4163 hzwer与逆序对 貌似这个题和上个题是一样的((⊙o⊙)…) 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description hzwer在研究逆序对. 对于数列{a},如果有序数对(I,j)满足:i<j,a[i]>a[j],则(i,j)是一对逆序对. 给定一个数列{a},求逆序对个数. 输入数据较大,请使用scanf代替cin读入. *为防卡评测,时限调低至1s 输入描述 Input Description

须议观期亲万完构下安从西况下五叫何FXkmyenx9L4

很多人小时候,都曾经被父母口中"别人家的孩子"笼罩.那个孩子从小学一年级的期末考试,就考年级第一,平时参加各种活动,该玩的都玩,到了高三高考,依然是年级第一名,毕业之后,又拿到硕士.博士和国际奖项.如果有这样一个孩子,是不是很遭恨? 很不幸,我自己就是这样一个遭恨的"别人家的孩子".这点我平时都不敢讲.但其实我自己知道,我心中的自我,和别人看到的这个"别人家的孩子",绝对不一样. 我心中的成长岁月,失落多于骄傲.在我自己的眼中,成长并不是充满成功

矩阵乘法快速幂 codevs 1574 广义斐波那契数列

codevs 1574 广义斐波那契数列 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 广义的斐波那契数列是指形如an=p*an-1+q*an-2的数列.今给定数列的两系数p和q,以及数列的最前两项a1和a2,另给出两个整数n和m,试求数列的第n项an除以m的余数. 输入描述 Input Description 输入包含一行6个整数.依次是p,q,a1,a2,n,m,其中在p,q,a1,a2整数范围内,n和m在长整数范围

矩阵乘法快速幂 codevs 1250 Fibonacci数列

codevs 1250 Fibonacci数列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 定义:f0=f1=1, fn=fn-1+fn-2(n>=2).{fi}称为Fibonacci数列. 输入n,求fn mod q.其中1<=q<=30000. 输入描述 Input Description 第一行一个数T(1<=T<=10000). 以下T行,每行两个数,n,q(n<=109, 1<

[CODEVS 1281] Xn数列

描述 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn http://codevs.cn/problem/1281/ 分析 比较裸的矩阵乘法题, 好久没做了, 写写思路 假设矩阵 A = { {a1, a2}, {a3, a4} }, B = { {b1, b2}, {b3, b4} }. 根据矩阵乘法的计算方法, 有 : A×B = { {a1b1+a2b2, a1b2+a2b4}, {a3b1+a4b3, a3b2+a4b4} }. 那

Fibonacci数列(codevs 1250)

题目描述 Description 定义:f0=f1=1, fn=fn-1+fn-2(n>=2).{fi}称为Fibonacci数列. 输入n,求fn mod q.其中1<=q<=30000. 输入描述 Input Description 第一行一个数T(1<=T<=10000). 以下T行,每行两个数,n,q(n<=109, 1<=q<=30000) 输出描述 Output Description 文件包含T行,每行对应一个答案. 样例输入 Sample I

Codevs 4357 不等数列

不等数列 [题目描述] 将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”.问在所有排列中,有多少个排列恰好有k个“<”.答案对2012取模. [输入格式] 第一行2个整数n,k. [输出格式] 一个整数表示答案. [样例输入] 5 2 [样例输出] 66 [数据范围] 对于30%的数据:n <= 10 对于100%的数据:k < n <= 1000, 对于30% n<=10的数据,搜索打表,状态压缩动态规划...... 对于1--n等

codevs 2947 饥饿数列

题目描述 Description Iahub和Iahubina去一家豪华餐厅约会,然而到了付账时,收银员不向他们收取餐费,而是要求他们写出一个数列.对这个数列的要求如下: 1.数列的长度为n 2.对于数列中的任意两个满足i<j的数ai.aj,要求ai<aj. 3.对于数列中的任意两个满足i<j的数ai.aj,要求ai不能整除aj. 输入描述 Input Description 一个数n 输出描述 Output Description 一行,n个数,所求数列. 如果有多种可行数列,输出字典