链接:https://www.nowcoder.com/acm/contest/135/I
来源:牛客网

区间 (interval)

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

Apojacsleam喜欢数组。

他现在有一个n个元素的数组a,而他要对a[L]-a[R]进行M次操作:

操作一:将a[L]-a[R]内的元素都加上P

操作二:将a[L]-a[R]内的元素都减去P

最后询问a[l]-a[r]内的元素之和?

请认真看题干及输入描述。

输入描述:

输入共M+3行:第一行两个数,n,M,意义如“题目描述”第二行n个数,描述数组。第3-M+2行,共M行,每行四个数,q,L,R,P,若q为1则表示执行操作2,否则为执行操作1第4行,两个正整数l,r

输出描述:

一个正整数,为a[l]-a[r]内的元素之和

示例1

输入

复制

10 5
1 2 3 4 5 6 7 8 9 10
1 1 5 5
1 2 3 6
0 2 5 5
0 2 5 8
1 4 9 6
2 7

输出

复制

23

说明

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<queue>
#include<set>
const int MAXN=1e6+10;
using namespace std;
int lowbit(int x){return x&(-x);}
int n,Q,opt,x,y;
long long A[MAXN],C[MAXN],sum[MAXN],z;
void modifyA(int x,int val){while(x<=n){A[x]+=val;x+=lowbit(x);}
}
void modifyC(int x,long long val){while(x<=n){C[x]+=val;x+=lowbit(x);}
}
void update(int from,int to,long long val){modifyA(from,val);modifyA(to+1,-val);modifyC(from,val*from);modifyC(to+1,-val*(to+1));
}
long long queryA(int loc){long long ans=0;while(loc){ans+=A[loc];loc-=lowbit(loc);}return ans;
}
long long queryC(int loc){long long ans=0;while(loc){ans+=C[loc];loc-=lowbit(loc);}return ans;
}
long long query(int loc){return sum[loc]+(loc+1)*queryA(loc)-queryC(loc);
}
long long query(int from,int to)
{return query(to)-query(from-1);
}
int m;
int main()
{scanf("%d%d",&n,&m);for(register int i=1;i<=n;i++)scanf("%lld",&sum[i]),sum[i]+=sum[i-1];while(m--){scanf("%d%d%d",&opt,&x,&y);if(opt==1){scanf("%lld",&z);update(x,y,-z);}else{scanf("%lld",&z);update(x,y,z);}}int L,R;scanf("%d%d",&L,&R);printf("%lld\n",query(L,R));return 0;
}

一维树桩数组区间更新、区间查询相关推荐

  1. UESTC 1601 艾尔大停电2 二维树状数组+区间更新

    艾尔大停电2 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  S ...

  2. hdu3966 树链剖分点权模板+线段树区间更新/树状数组区间更新单点查询

    点权树的模板题,另外发现树状数组也是可以区间更新的.. 注意在对链进行操作时方向不要搞错 线段树版本 #include<bits/stdc++.h> using namespace std ...

  3. hdu 1556:Color the ball(第二类树状数组 —— 区间更新,点求和)

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  4. poj3468 线段树区间更新+区间查询

    题目链接: http://poj.org/problem?id=3468 A Simple Problem with Integers Time Limit: 5000MS   Memory Limi ...

  5. 石油大 2019年第二阶段我要变强个人训练赛第十八场 Problem N 扶桑号战列舰(线段树+区间更新+区间查询)

    链接:http://icpc.upc.edu.cn/problem.php?cid=1803&pid=13 题意:给出一个n,接下来一行给出n个数.才开始所有数为0,每次操作可以选一个区间[l ...

  6. HDU 4031 Attack(线段树/树状数组区间更新单点查询+暴力)

    Attack Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Sub ...

  7. Color the ball(树状数组区间更新+单点求值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Color the ball Time Limit: 9000/3000 MS (Java/Ot ...

  8. hdu2642二维树状数组单点更新+区间查询

    http://acm.hdu.edu.cn/showproblem.php?pid=2642 题目大意:一个星空,二维的.上面有1000*1000的格点,每个格点上有星星在闪烁.一开始时星星全部暗淡着 ...

  9. hdu 4533(树状数组区间更新+单点查询)

    题意:给你N个矩形,每个矩形给出左下角坐标,右上角坐标,有M个询问,每个询问给出一个时间t,问(0,0),(t,t)的范围内矩形的面积和(重叠的也算). 参考博客:http://blog.csdn.n ...

最新文章

  1. 直系同源基因ks_哈佛医学院开发出新的Cas9变体,可以靶向基因组绝大部分序列...
  2. 检测你的机子上装了什么版本的.net framework
  3. RDMA技术详解(三):理解RDMA Scatter Gather List
  4. loadrunner 分用户日志
  5. 公共链接url出错_SEO优化技巧:关于URL的优化方法
  6. VSTS有Bug,分析数据库的维度和维度属性使用中文命名时候,作为报表参数会出错。虽然有解决办法但是头大。...
  7. android eclipse三合一,创新巅峰之作全能型Orbitrap Eclipse三合一质谱仪
  8. 紫光扫描仪ocr_清华紫光扫描仪的安装教程及使用方法
  9. C++11 packaged_task
  10. tomcat自动化部署(拉取\备份、部署、更新、回滚)
  11. php 会议室源码,PHP和jQuery实现会议排座管理.doc
  12. 测试点 - 发朋友圈
  13. cocos2d-x精灵的放大和缩小
  14. 【通識:人生哲學與幸福】青年心理學 Part2 成熟
  15. 【Go资料】go语言学习资料书籍
  16. easyExcel导入失败提示用户第几行有误并回滚数据
  17. 超级好用的在线流程图、脑图、UML制作工具ProcessOn
  18. 微软确认裁员1万人,遣散费约54亿元,人均获赔54万!
  19. 2021-08-11校网比赛B题
  20. 工控软件项目和文档整理

热门文章

  1. 16kb等于多少b_面试官:MySQL索引为何选择B+树?
  2. python装饰器详解-这是我见过最全面的Python装饰器详解!没有学不会这种说法!...
  3. python简单爬虫代码-python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息...
  4. python主要用来做什么-Python能用来做什么?以下是Python的三大主要用途
  5. 自学python能学成吗-自学Python能学会吗 零基础怎么学
  6. 用python画玫瑰花-用python画一朵玫瑰花
  7. 精通python工资高吗-软件测试,如何工资过万?
  8. 连续语音识别,continuous speech recognition,音标,读音,翻译,英文例句,英语词典
  9. php7.1 mysql_安装最新LAMP环境 (CentOS7+PHP7.1.5+Mysql5.7)
  10. DOM判断节点类型分分钟搞定