题目描述 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.

题意是一个数列支持单点修改、单点查询、区间[1,n]翻转

前两者显然数组就搞定

因为是整个区间翻转,所以可以直接用一个tag标记当前是不是翻转的,每次区间翻转后tag^=1,如果是翻转的只要把点的位置改成n-k+1,其他照旧即可。

一道NOIP普及组的送分题,如果这个分没有送到你的手上,2333

 #include<iostream>
#include<cstdio>
using namespace std;
const int maxn=;
bool fan=;
int n,m,opr,a[maxn];
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=m;i++)
{
scanf("%d",&opr);
if(opr==)
{
scanf("%d",&opr);
if(fan)printf("%d\n",a[n-opr+]);
else printf("%d\n",a[opr]);
}
else if(opr==)
{
int l,x;
scanf("%d%d",&l,&x);
if(fan)a[n-l+]=x;
else a[l]=x;
}
else if(opr==)fan^=;
}
}

codevs4159

2015.9.11模拟赛 codevs 4159【hzwer的迷の数列】的更多相关文章

  1. 2015.9.11模拟赛 codevs 4160【会玩的】

    题目描述 Description hzwer真的很会玩啊…他有一个n*m的方格,每次可以给方格添加一整行或一整列,但是不能删除.现在他想要让总格子数超过k个,但是又想让总格子数尽可能小.请找出这时的n ...

  2. 2015.9.11模拟赛 codevs4162 bzoj1774【无双大王】

    题目描述 Description 无双大王hzwer扫清六合,席卷八荒,万姓倾心,四方仰德. hzwer拥有一片领土,其中有n个城市和m条双向道路.他规定每个人在领土上行走都要交过路费,同时进城也要交 ...

  3. NOIp 2015真题模拟赛 By cellur925

    果然我还是最菜的==不接受反驳== Day1 T1:神奇的幻方 思路:直接模拟即可,由于当前放法只与上一放法有关系,用两个变量记录一下即可.10分钟内切掉== 预计得分:100分 实际得分:100分 ...

  4. 2019.11.11 模拟赛 T2 乘积求和

    昨天 ych 的膜你赛,这道题我 O ( n4 ) 暴力拿了 60 pts. 这道题的做法还挺妙的,我搞了将近一天呢qwq 题解 60 pts 根据题目给出的式子,四层 for 循环暴力枚举统计答案即 ...

  5. ZROI 19.08.11模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. dlstql,wsl A \(10pts:\) \(a=100,T=100\),对每个排列构造一个反的,一步到位即可. \(20pts ...

  6. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  7. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  8. 11/1 NOIP 模拟赛

    11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...

  9. 9.11 myl模拟赛

    9.11 myl 模拟赛 100 + 100 + 0 第一题耗费了太多的时间,导致最后一题没有时间想,直接去写了暴力,而且出题人没有给暴力分.... Problem 1. superman [题目描述 ...

随机推荐

  1. [CSS3] CSS Media Queries

    Using CSS media queries allows you to design responsive layout in your web apps and website. We will ...

  2. 解决从源码编译ncurses6.0编译lib_gen.c报错的问题

    直接从官网的源码编译时,会提示报错: gcc -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG -O2 --param max-inlin ...

  3. centos6 安装vsftpd

    centos6 安装vsftpd vsftpd一般选择yum安装,以下是安装和配置过程 如果是centos6想要安装的话一般是编译安装 1.安装 yum安装 yum install vsftpd 编译 ...

  4. JavaScript中几个可以转化为false的值

    1.[0,NaN,“”,null,undefined]都可以直接转化为false,但这几个值不是完全相等的 var arr = [0,"",false,null,undefined ...

  5. Windows 设置时间同步

    1.Windows  Server 2008 r2 注:{}内是你要同步的外部服务器地址,例如复旦的时间同步服务器地址为:ntp.fudan.edu.cn,则完整命令如下: w32tm /config ...

  6. Javascript 常用函数【2】

    1.常规函数javascript常规函数包括以下9个函数:(1)alert函数:显示一个警告对话框,包括一个OK按钮.(2)confirm函数:显示一个确认对话框,包括OK.Cancel按钮.(3)e ...

  7. java IO 实例分析

    初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见 ...

  8. hdu 1829 基础并查集,查同性恋

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  9. rtmpdump代码分析 转

    RTMPdump 源代码分析 1: main()函数 rtmpdump 是一个用来处理 RTMP 流媒体的工具包,支持 rtmp://, rtmpt://, rtmpe://, rtmpte://, ...

  10. js获取url?后的参数

    function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new O ...