博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二维树状数组(模板)
阅读量:4664 次
发布时间:2019-06-09

本文共 1067 字,大约阅读时间需要 3 分钟。

1.单点修改,区间查询

#include
#define re return#define ll long long #define lowbit(x) (x&(-x))#define inc(i,l,r) for(int i=l;i<=r;++i)using namespace std;template
inline void rd(T&x){ char c;bool f=0; while((c=getchar())<'0'||c>'9')if(c=='-')f=1; x=c^48; while((c=getchar())>='0'&&c<='9')x=x*10+(c^48); if(f)x=-x;}const int maxn=5000;ll n,m;ll c[maxn][maxn];inline void add(ll x,ll y,ll z){ for(ll i=x;i<=n;i+=lowbit(i)) for(ll j=y;j<=m;j+=lowbit(j)) c[i][j]+=z;}inline ll sum(ll x,ll y){ ll res=0; for(ll i=x;i;i-=lowbit(i)) for(ll j=y;j;j-=lowbit(j)) res+=c[i][j]; re res;}int main(){ freopen("in.txt","r",stdin); ll a,b,x,y,z,opt; rd(n);rd(m); while(~(scanf("%lld",&opt))) { if(opt==1) { rd(x),rd(y),rd(z); add(x,y,z); } else { rd(a);rd(b),rd(x),rd(y); printf("%lld\n",sum(x,y)+sum(a-1,b-1)-sum(x,b-1)-sum(a-1,y)); } } re 0;}

 

转载于:https://www.cnblogs.com/lsyyy/p/11425293.html

你可能感兴趣的文章
瑞斯康达:高质量视频监控的接入优化
查看>>
hbase首次导入大批次的数据成功!
查看>>
指针与引用的区别
查看>>
Aspectj的aop操作
查看>>
带着问题读CLR via C#(二)类型基础
查看>>
PHP扩展编写、PHP扩展调试、VLD源码分析、基于嵌入式Embed SAPI实现opcode查看
查看>>
通宵教室(ACM水题)
查看>>
类型判断
查看>>
c#截取后台窗口的图片
查看>>
css3中的动画 @keyframes animation
查看>>
虚拟机内 docker启动 局域网无发访问 问题解决
查看>>
whu Problem 1537 - A - Stones I 贪心
查看>>
Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks dp+矩阵加速
查看>>
LeetCode Online Judge 题目C# 练习 - Plus One
查看>>
保存的网页地址---持续更新
查看>>
文件空洞的作用:文件系统帮你做到磁盘预留
查看>>
openssl pkcs12
查看>>
C++中的this指针
查看>>
浅谈Objective-C中浅谈面向对象
查看>>
Python解释器
查看>>