树状数组 模板

树状数组 模板

Acwing 1264. 动态求连续区间和

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int N = 1e5 + 10;
int a[N],tr[N],n,m;
int lowbit(int x) {
    return x & -x;
}
void add(int x,int v) {// 自底向上
    for(int i = x;i <= n;i += lowbit(i)) tr[i] += v;
}
int query(int x) {// 自顶向下
    int res = 0;
    for(int i = x;i;i -= lowbit(i)) res += tr[i];
    return res;
}
int main() {
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int x,y,k;
    cin >> n >> m;
    for(int i = 1;i <= n; ++i) cin >> a[i];
    for(int i = 1;i <= n; ++i) add(i,a[i]);
    while(m --) {
        cin >> k >> x >> y;
        if(k == 0) cout << query(y) - query(x - 1) << endl;
        else add(x,y);
    }
    return 0;
}

原文链接: https://www.cnblogs.com/lukelmouse/p/12425921.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    树状数组 模板

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/333747

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午9:19
下一篇 2023年3月1日 下午9:20

相关推荐