
树状数组
放过@
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构——树状数组
树状数组是利用二进制的一些特点来实现的,主要用来查询动态的连续和的问题,修改和查询都是O(log(n))的复杂度,需要O(n)的空间复杂度 1.单点修改+区间查询 void add(int p, int x){ //给位置p增加x while(p <= n) sum[p] += x, p += p & -p; } int ask(int p){ //求位置p的前缀和 ...原创 2020-02-17 16:17:48 · 250 阅读 · 0 评论 -
树状数组(待修改)
#include<cstdio> const int maxn = 200000+5; int c[maxn], a[maxn/2]; // c为求和后的数组, a为原数组 /* c[i] = a[i - 2^k + 1] + a[i - 2^k + 2] ...... lowbit(i) 就是2^k */ int lowbit(int x) { return x &...原创 2019-04-11 13:12:13 · 118 阅读 · 0 评论