总时间限制: 
10000ms

单个测试点时间限制: 
1000ms

内存限制: 
262144kB
描述

给一个长为N的数列,有M次操作,每次操作是以下两种之一:

(1)修改数列中的一个数

(2)求某次操作后连续一段的和

输入
第一行两个正整数N和M。
第二行N的整数表示这个数列。
接下来M行,每行开头是一个字符,若该字符为'M',则表示一个修改操作,接下来两个整数x和y,表示把x位置的数修改为y;若该字符为'Q',则表示一个询问操作,接下来三个整数x、y、z,表示求数列中[x,y]这段区间在第z次操作后的和。
输出
对每一个询问操作单独输出一行,表示答案。
样例输入
5 4
1 2 3 4 5
Q 2 3 0
M 3 5
Q 2 3 2
Q 1 3 1
样例输出
5
7
6
提示
1<=N<=10^5,1<=M<=10^5,输入保证合法,且所有整数及答案可用带符号32位整型存储。
可持久化线段树模板
#include<cstdio>
#define N 100001
using namespace std;
int n,m,cnt,ans;
int root[N],lc[N*],rc[N*],sum[N*];
int ope[N];
void change(int &k,int pre,int l,int r,int pos,int w)
{
if(!k) k=++cnt;
sum[k]=sum[pre];
if(l==r) { sum[k]=w; return; }
int mid=l+r>>;
if(pos<=mid) rc[k]=rc[pre],change(lc[k],lc[pre],l,mid,pos,w);
else lc[k]=lc[pre],change(rc[k],rc[pre],mid+,r,pos,w);
sum[k]=sum[lc[k]]+sum[rc[k]];
}
void query(int k,int l,int r,int opl,int opr)
{
if(l>=opl && r<=opr) { ans+=sum[k]; return; }
int mid=l+r>>;
if(opl<=mid) query(lc[k],l,mid,opl,opr);
if(opr>mid) query(rc[k],mid+,r,opl,opr);
}
int main()
{
scanf("%d%d",&n,&m);
int x,y,z;
for(int i=;i<=n;i++)
scanf("%d",&x),change(root[],root[],,n,i,x);
int now=;
char s[];
for(int i=;i<=m;i++)
{
ope[i]=now;
scanf("%s",s);
if(s[]=='M')
{
now++; ope[i]=now;
scanf("%d%d",&x,&y);
change(root[now],root[now-],,n,x,y);
}
else
{
scanf("%d%d%d",&x,&y,&z);
ans=;
query(root[ope[z]],,n,x,y);
printf("%d\n",ans);
}
}
}

东方14ACM小组 Challenge 11的更多相关文章

  1. 东方14ACM小组 15:Challenge 11

    Challenge 11 查看 提交 统计 提问 总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 给一个长为N的数列,有M次操作,每次操作是 ...

  2. OpenJudge 东方14ACM小组 / 20170123 06:Challenge 3

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)修改数列中的一个数 (2)求 ...

  3. OpenJudge 东方14ACM小组 / 20170123 02 岛屿

    总时间限制:  40000ms 单个测试点时间限制:  4000ms 内存限制:  128000kB 描述 从前有一座岛屿,这座岛屿是一个长方形,被划为N*M的方格区域,每个区域都有一个确定的高度.不 ...

  4. 15:Challenge 11(主席树裸题)

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)修改数列中的一个数 (2)求 ...

  5. SQL注入测试平台 SQLol -6.CHALLENGES挑战

    SQLol上面的挑战共有14关,接下来我们一关一关来突破. Challenge 0 目的是让查询返回所有的用户名,而不是只有一个. SELECT username FROM users WHERE u ...

  6. OpenJudge_cdqz 数据结构版块小结

    题目整理 Challenge 0  随机线性存储表-easy Challenge 1  链表数组-easy Challenge 2  可持久化Treap的可持久化运用-hard Challenge 3 ...

  7. [日常] NOIP前集训日记

    写点流水账放松身心... 10.8 前一天考完NHEEE的一调考试终于可以开始集训了Orz (然后上来考试就迟到5min, GG) T1维护队列瞎贪心, 过了大样例交上去一点也不稳...T出翔只拿了5 ...

  8. 深圳共创力咨询《成功的产品经理DNA》公开课3月29~30日在深圳开课!

    课时:13小时(2天)    成功的产品经理DNA   讲师: 冯老师 时间:2019.03.29~30 举办单位:深圳市共创力企业管理咨询有限公司 举办地点:深圳 [课程背景] 当今时代,供过于求. ...

  9. CDQZ.OPENJUDGE DataStructure22

    我觉得这是很重要的一些题目.它们都在这里:硕巨结构 Challenge 0:给定数列,单点修改,单点查询修改.煞有介事,不过一数组耳. Challenge 1:给定数列,单点修改,单点查询第k次操作后 ...

随机推荐

  1. 环境变量PATH

    一.举例 我在用户主文件夹执行命令“ls”,会在屏幕显示该文件夹下的所有文件.然而,ls的完整文件名为“/bin/ls”,按道理我不在/bin下要想执行ls命令必须输入“/bin/ls”,但我仅仅需要 ...

  2. Alpha 冲刺(1/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作,对多个目标检测及文字识别模型进行评估.实验,选取较 ...

  3. JAVA单态设计模式

    核心--在类的内部把构造器私有化,同时在内部产生对象,并通过类.静态方法(static)返回实例化对象的引用   设计模式是在大量的实践总结和理论化之后优选的代码结果,编程风格,以及解决问题的思考方式 ...

  4. Mybatis实现

    简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 ...

  5. tracert的应用

    tracert IP //检查网络各个节点路由情况: 如果是在10个路有点之内访问到了该站点,说明访问速度良好,若是在10~15之间,说明站点访问状况就一般了. ipconfig /flushdns ...

  6. mysql突然无法启动的问题

    经常会有这样一个情况是:mysql跑了一段时间后,某一天我们需要重启服务的时候,发现停止后并不能正常启动,会报下面这种错误 这种情况发生的原因绝大多数都是权限的问题: 因为使用了一段时间后,使用期间表 ...

  7. [C/C++] C++抽象类

    转自:http://www.cnblogs.com/dongsheng/p/3343939.html 一.纯虚函数定义 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己 ...

  8. 【其他】UTF-8带签名与不带签名

    在 Visual Web Developer 另存为文件时,有编码选项,其中有: Unicode (UTF-8 with signature) - Codepage 65001 Unicode (UT ...

  9. RT-thread 设备驱动组件之IIC总线设备

    本文主要介绍RT-thread中IIC总线设备驱动,涉及到的主要文件有:驱动框架文件(i2c_core.c,i2c_dev.c,i2c-bit-ops.c,i2c_dev.h,i2c.h):底层硬件驱 ...

  10. poj3074-Sodoku

    解数独. 分析 考虑如何把数独解合法的条件转化为经典的01精确覆盖: 每个格子只能填一个数,1-9 每一列刚好填了1-9 每一行刚好填了1-9 每个九宫格刚好填了1-9 也就是说,每个格子,列,行,九 ...