树状数组模板

Posted xuanyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树状数组模板相关的知识,希望对你有一定的参考价值。

  • 树状数组是一个查询和修改复杂度都为 \(log\left(n\right)\) 的数据结构

  • 所有树状数组能够完成的线段树都能够完成,而线段树能够完成的树状数组

  • - 那么既然线段树能够完成所有树状数组能够完成的,树状数组有什么用呢?

  • - 因为树状数组简洁,内存小,常数小

可以先百度一下树状数组了解树状数组

  • 单点修改,区间查询

    #include <cstdio>
    using namespace std;
    void Update(int i,int x){
    while (i<=MAX_TREE_SIZE) tr[i]+=x,i+=lowbit(i);
    }
    int Query(int i){
    int sum=0;
    while (i!=0) sum=sum+tr[i],i-=lowbit(i);
    return sum;
    }

以上是关于树状数组模板的主要内容,如果未能解决你的问题,请参考以下文章

树状数组模板

树状数组2模板 Luogu 3368

树状数组1模板 Luogu 3374

模板树状数组

模板树状数组

P3372 模板线段树 1(区间修改区间查询)(树状数组)