题目描述

如题,已知一个数列,你需要进行下面两种操作:

1.将某一个数加上x

2.求出某区间每一个数的和

输入输出格式

输入格式:

第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。

第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。

接下来M行每行包含3个整数,表示一个操作,具体如下:

操作1: 格式:1 x k 含义:将第x个数加上k

操作2: 格式:2 x y 含义:输出区间[x,y]内每个数的和

输出格式:

输出包含若干行整数,即为所有操作2的结果。

输入输出样例

输入样例#1

5 5
1 5 4 2 3
1 1 3
2 2 5
1 3 -1
1 4 2
2 1 4

输出样例#1

14
16

说明

时空限制:1000ms,128M

数据规模:

对于30%的数据:N<=8,M<=10

对于70%的数据:N<=10000,M<=10000

对于100%的数据:N<=500000,M<=500000

样例说明:

故输出结果14、16


思路

#include <stdio.h>
#include <iostream>
using namespace std;
int n,m,bit[2000001],s;
inline int lowbit(int x)
{return x&(-x);
}
inline void add(int x,int k)
{while(x<=n){bit[x]+=k;x+=lowbit(x);}
}
inline int sum(int x)
{int ans(0);while(x!=0){ans+=bit[x];x-=lowbit(x);}return ans;
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);register int i,j;cin>>n>>m;for(i=1;i<=n;i++){int x;cin>>x;add(i,x);}for(i=1;i<=m;i++){int a,b,c;cin>>a>>b>>c;if(a==1){add(b,c);}else{cout<<sum(c)-sum(b-1)<<endl;}}return 0;
}

[洛谷]P3374 【模板】树状数组 1 (#树状数组)相关推荐

  1. 洛谷P3374 【模板】树状数组 1

    题目链接:[模板]树状数组 1 - 洛谷 模板题就不多说了 ac代码: #include <cstdio> #include <iostream> #include <a ...

  2. 洛谷[P3374] [P3368]树状数组(线段树解法)

    最近学习了线段树,不会树状数组,用线段树舔着脸来做一下 P3374树状数组1https://www.luogu.com.cn/problem/P3374 ac代码 #include<bits/s ...

  3. 洛谷·【模板】点分树 | 震波【including 点分树

    初见安-这里是传送门:洛谷P6329 [模板]点分树 | 震波 一.点分树 其实你会点分治的话,点分树就是把点分治时的重心提出来重新连城一棵树. 比如当前点是u,求出子树v的重心root后将root与 ...

  4. 专题·树链剖分【including 洛谷·【模板】树链剖分

    初见安~~~终于学会了树剖~~~ [兴奋]当初机房的大佬在学树剖的时候我反复强调过:"学树剖没有前途的!!!" 恩.真香. 一.重链与重儿子 所谓树剖--树链剖分,就是赋予一个链的 ...

  5. 【题解】洛谷P4145 花神游历各国(线段树)

    洛谷P4145:https://www.luogu.org/problemnew/show/P4145 思路 这道题的重点在于sqrt(1)=1 一个限制条件 与正常线段树不同的是区间修改为开方 那么 ...

  6. ⌈洛谷1505⌋⌈BZOJ2157⌋⌈国家集训队⌋旅游【树链剖分】

    题目链接 [洛谷] [BZOJ] 题目描述 Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本,T ...

  7. 【JZOJ3794】【洛谷P1383】高级打字机【主席树】

    题目大意: 题目链接: 洛谷:https://www.luogu.org/problemnew/show/P1383 JZOJ:https://jzoj.net/senior/#main/show/3 ...

  8. 洛谷 - P1886 滑动窗口(单调队列/线段树)

    题目链接:点击查看 题目大意:给出一个由n个数构成的序列,再给出一个长度为k的窗口,这个窗口从第一个下标开始一直向后移动,每次移动一个单位,每次移动询问一次该窗口中的最大值和最小值,最后输出答案 题目 ...

  9. 洛谷刷题C语言:FILIP、修改数组、Fun、Šifra、Erinnerung

    记录洛谷刷题QAQ [COCI2009-2010#3] FILIP 题目描述 给你两个十进制正整数 a,ba, ba,b,输出将这两个数翻转后的较大数. 「翻转」在本题中的定义详见「说明 / 提示」部 ...

  10. 洛谷 P3374 树状数组模板1

    题目大意 给出一个初始数组,有两种操作,一种是将第x个数加上k,一种是求[x,y]区间和. 题目分析 直接暴力肯定TLE,我们可以用简单线段树或者树状数组优化,这里作者就采用简单线段树通过 #incl ...

最新文章

  1. jmeter tps指标在哪里看_JMeter功能不够用?看这里
  2. 现在不坚持,以后都会放弃
  3. 使用类前置声明的好处-结合Qt 4一个主窗口实例讲解
  4. Python 代码混淆和加密技术
  5. Kenai.com 将与 java.net 合并
  6. tomcat装死原因汇总
  7. qt设置鼠标追踪后,鼠标还是需要点击后才能变样式
  8. Java中的对象、private关键字、this关键字、构造方法
  9. C语言爬楼梯问题(递推)
  10. 优秀的互联网项目经理/市场总监如何选择给力的互联网技术实现团队?
  11. Android文件的保存(本地和SD卡)与读取
  12. Drools规则引擎讲解
  13. 终极算法【6】——贝叶斯学派
  14. delphi 分析抓取html,delphi网页数据抓取
  15. with revoked permission android.permission.CAMERA
  16. Mac系统空格预览放大图片
  17. 印象深刻的bug汇总(持续更新)
  18. 修改系统默认的音频设备
  19. Teardrop攻击初体验
  20. Android开发——适配终结者AutoLayout

热门文章

  1. Internet RFC 诞生五十周年;互联网信息服务投诉平台上线
  2. php批量改名工具,批量更名大师下载_批量改名大师(Win-Tool之文件批量更名工具) 1.8.7 演示版_极速下载站_软件下载...
  3. excel批量改名字(含识别区分)
  4. 原创丨嵌入式IMX6ULL学习指引-四大要点-简单也实用
  5. 图像识别流程学习总结
  6. 【赠书】腾讯广告算法大赛冠军、Kaggle Grandmaster倾力打造,涵盖Kaggle、阿里天池等赛题...
  7. 高职单招面试流程及技巧有哪些
  8. 最小公倍数和最小公约数
  9. 搭载在电源插座上的IoT革命
  10. 如何高效学习的一点思考