
树状数组
HumveeA6
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(模板)树状数组 (单点更新,区间求和)
小心爆int,注意位运算的方式即可;int bit[500005],n,m;typedef long long ll;ll sum(int i){ ll s=0; while(i){ s+=bit[i]; i-=i&-i; } return s;}void add(int i,int x){ whi...原创 2018-03-13 17:19:35 · 423 阅读 · 0 评论 -
(模板)树状数组 (区间修改,单点查询)
引入一个叫做查分数组的东西,感觉思想有点像lazytab。区间[l,r]所有值+k改成”位置l加上k,位置r+1减去k” 查询的时候直接查询sum(x)就行;(参考题目:洛谷P3386)#include<cstdio>#include<iostream>using namespace std;typedef long long ll;const int max...原创 2018-03-13 18:07:00 · 193 阅读 · 0 评论 -
二维树状数组(模板,单点更新区间求和)
updata:在(x,y)处加上v query:区间(0,0)到(x,y)的所有数之和 sum:容斥原理求区间所有数之和,(x,y)左上角,(xx,yy)右下角。坐标是从左往右,从上往下增大。int N;int c[maxn][maxn];inline int lowbit(int t){ return t&(-t);}void update(int x,int ...原创 2018-06-03 17:36:10 · 429 阅读 · 0 评论