[模版] BIT 树状数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[模版] BIT 树状数组相关的知识,希望对你有一定的参考价值。
树状数组(BIT)
树状数组不仅仅只有求区间和的作用,还可以以此来查询区间最值或特殊值,(它的查询和插入操作都是O(logn)级别的);
它的最大好处就是简单易写,实现方便;
定义:
// * 数组大小 #define BITSZ (100) // * 树状数组 int Bit[BITSZ]
单点添加函数:
void AddBit (int k,int val) { while (k<=BITSZ) { Bit[k]+=val; k+=k&-k; } return; }
查询[1,k]的区间和函数:
int QueryBit (int k) { int sum=0; while (k>0) { sum+=Bit[k]; k-=k&-k; } return sum; }
以上是关于[模版] BIT 树状数组的主要内容,如果未能解决你的问题,请参考以下文章