1097: 树状数组1(快速求和计算)
来源:互联网 发布:淘宝咬鲜花表情 编辑:程序博客网 时间:2024/05/21 17:58
1097: [视频]树状数组1(快速求和计算)
时间限制: 3 Sec 内存限制: 128 MB
提交: 231 解决: 109
[提交][状态][讨论版]
题目描述
【题意】
给出n个数,并且初始化所有数字都为0。接下来m次操作。
操作有以下两种:
1:C x y 把第x个数的值增加y(y可正可负)
2:P x y 就是询问 第x个数 至 第y个数 的所有数的和。
【输入格式】
第一行两个整数n和m(1 <= n <= 100000 ,1 <= m <= 100000 )
下来m行,每行描述一次操作。
【输出格式】
当2操作时输出相应的答案。
【样例输入】
5 3
C 2 3
C 4 5
P 1 5
【样例输出】
8
#include<iostream>using namespace std;int n,m;int control[110000];int lowbit(int x){return x&-x;}void change(int x,int k){ while(x<=n) { control[x]=control[x]+k; x+=lowbit(x); }}int getnum(int x){ int ans=0; while(1<=x) { ans+=control[x]; x-=lowbit(x); } return ans;}int main(){ char s; int x,y; cin>>n>>m; for (int i=0;i<m;i++) { cin>>s>>x>>y; if (s=='C') change(x,y); else cout<<getnum(y)-getnum(x-1)<<endl; } return 0;}
阅读全文
0 0
- 1097: 树状数组1(快速求和计算)
- 树状数组入门(求和)
- 【模板】树状数组 单点修改,区间求和 (模板题:洛谷P3374树状数组1)
- 树状数组扩展(异或求和)
- 树状数组--区间求和
- 树状数组,区间求和
- 51Nod 1081 子段求和(数组/树状数组)
- 【模板】树状数组 区间修改,区间求和 (模板题:洛谷P3372线段树1)
- NYOJ 108 士兵杀敌 (一) (树状数组&区间求和)
- hdu 1556 树状数组(区间更新,单点求和)
- poj 1990 MooFest(转化成树状数组求和)
- HDU 1541 Stars (树状数组 区间求和)
- 51nod:1081 子段求和(树状数组)
- hdu1166(树状数组,点修改,区间求和)
- poj1195(二维树状数组,点修改,区间求和)
- CF301D(树状数组,离线统计,区间求和)
- 敌兵布阵------树状数组(单点更新与区间求和)
- 树状数组一(二)维区间修改与求和
- N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。 请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。c语言编程【22题】
- 原生JS click onclick 区别
- python实现数据挖掘算法一
- jQuery中$符号的作用
- handlebars Block Expressions 块表达式 直接使用html标签拼接方式(使用较少)
- 1097: 树状数组1(快速求和计算)
- 浅谈数据的离散化
- hdu5797 Convex (三角形面积+思维)
- hdu 5723 最小生成树+数学期望 难度:一般
- [ java swing derby开发pc应用 ] 从零到上线(三)
- swing (简单了解)
- 【codevs 1082】线段树练习 3
- Trie树上dfs跑 与 或 异或
- [南宁ACM-ICPC]Frequent Subsets Problem