Wikioi 1080一维树状数组
2024-10-19 02:20:42
半个月时间最终把那些杂七杂八的学完了,尽管学完也,也仅仅是有了个模板,自己手敲还是不太行。所以如今開始要疯狂刷题了!
!
。!!!
这题裸的树状数组。曾经写那道《敌兵布阵》的时候写过,所以写得还挺快的吧。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#define PI acos(-1.0)
#define mem(a,b) memset(a,b,sizeof(a))
#define sca(a) scanf("%d",&a)
#define sc(a,b) scanf("%d%d",&a,&b)
#define pri(a) printf("%d\n",a)
#define lson i<<1,l,mid
#define rson i<<1|1,mid+1,r
#define MM 100004
#define MN 1008
#define INF 2000000000
#define eps 1e-8
using namespace std;
typedef long long ll;
typedef unsigned long long ULL;
int n,c[MM];
void update(int x,int num)
{
for(int i=x;i<=n;i+=i&(-i))
c[i]+=num;
}
int sum(int x)
{
int i,ans=0;
for(i=x;i>=1;i-=i&(-i))
ans+=c[i];
return ans;
}
int main()
{
int m,i,a,k,p,q;
sca(n);
for(i=1;i<=n;i++)
{
sca(a);
update(i,a);
}
sca(m);
for(i=0;i<m;i++)
{
scanf("%d%d%d",&k,&p,&q);
if(k==1) update(p,q);
else printf("%d\n",sum(q)-sum(p-1));
}
return 0;
}
最新文章
- Oracle 的字符集与乱码
- HTML Select 标签选择后触发jQuery事件代码实例
- 【python cookbook】【数据结构与算法】11.对切片命名
- 谈谈CSS的布局,display、position、float
- MATLAB绘 透视图
- VS Extension: Create a txt file and set the content
- java中的闭包和回调
- [转]Delphi导出Excel的设置操作
- 实现单例模式C++版本
- HDU 4062 Partition
- iOS Masonry控件等比例布局
- 2018-2019-2 网络对抗技术 20165304 Exp2 后门原理与实践
- JDK 1.6 HashMap 源码分析
- mysql如何出查出最近7天,最近30天,最近n天的记录?
- STF环境搭建(ubuntu)
- Spring源码分析:非懒加载的单例Bean初始化过程(下)
- 03-01_WebLogic一些概念名词
- LPC43XX TQFP144 IO Pinout
- 基于内容的推荐 java实现
- 初学PS