树状数组
参考资料
简介
树状数组(Binary Indexed Tree,BIT),又称 Fenwick 树,用 维护前缀信息并支持单点修改。借助 lowbit(x)=x&-x,节点 维护区间 的聚合值。修改时沿 上跳,查询前缀时沿 下跳,单次操作 。它实现简洁、常数小,适合维护前缀和、区间和等可差分的信息。
实现
struct BIT
{
int c[N];
void add(int u,int v){while(u<N){c[u]+=v;u+=u&-u;}}
int sum(int u){int res=0;while(u){res+=c[u];u-=u&-u;}return res;}
};