题目描述 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. ubuntu12.04软件中心打开错误和 ubuntu 包管理之“:E: 读错误 - read (5: 输入/输出错误) E: 无法解析或打开软件包的列表或是状态文件。”的解决

    执行ubuntu软讲中心时打不开.老是崩溃,从终端也下载不了软件. 执行包管理的update或者search等等会报错: E: 读错误 - read (5: 输入/输出错误) E: 无法解析或打开软件 ...

  2. MySQL(14):Select-limit(限制获得的记录数量)

    1. limit 限制获得记录的数量 2.limit 语法: (1) limit  offset, row_count: offset偏移量,从0开始. row_count总记录数. 分析: 案例演示 ...

  3. git 取消追踪

    git rm --cached filePath这个操作不会删除这个文件

  4. ulimit -n修改单进程可打开最大文件数目

    对所有用户都生效: vi /etc/profile 添加一行如下: ulimit -n 65535 执行source /etc/profile生效,不需要重启服务器. $ source /etc/pr ...

  5. nyoj 214

    //nyoj 214 这个题目和字符串的问题类似,都是给出一组数据,寻找最长的单调递增字符 这一题一开始我用dp做,发现超时,看了下时间,n*n的复杂度,换过一种思路 用类似于栈的方式,来存储每次更新 ...

  6. spark 操作hbase

    HBase经过七年发展,终于在今年2月底,发布了 1.0.0 版本.这个版本提供了一些让人激动的功能,并且,在不牺牲稳定性的前提下,引入了新的API.虽然 1.0.0 兼容旧版本的 API,不过还是应 ...

  7. Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五)

    1.首先看一下本地窗口的布局效果 2.看一下本地窗口实现的代码框架 2.本地窗口的具体实现代码LocalPanel.java package com.oyp.ftp.panel.local; impo ...

  8. Linux的/etc/issue、/etc/issue.net和/etc/motd的区别

    Linux使用这三个文件/etc/issue./etc/issue.net和/etc/motd 来控制本地及远程登录前后的信息显示,网上很多相互转载,说的都不清楚,自己实际测试了一下,结果记录如下: ...

  9. V9 二次开发技术篇之 模型数据库

    应V9粉丝的建议,本人今天讲一下 MVC中的M 数据库模型 首先 在 phpcms\model  建一个模型文件test_model.class.php <?phpdefined('IN_PHP ...

  10. Google Chrome一些小技巧

    document.body.contentEditable='true'; 可以编辑网页上的内容