树状数组

这是最基础的版本,单点修改,区间查询


int n, q;
ll tree[N];
#define lowbit(x) ((x) & - (x))
void update(int x, ll d){
    while(x <= n){
        tree[x] += d;
        x += lowbit(x);
    }
}
ll sum(int x){
    ll ans = 0;
    while(x > 0){
        ans += tree[x];
        x -= lowbit(x);
    }
    return ans;
}
posted @ 2024-06-18 17:14  9102700  阅读(13)  评论(0)    收藏  举报