算法板子
文章目录


树状数组

#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e5 + 5;
int sa[MAX];
int query(int i) {
    int ans = 0;
    for (; i; i -= i & -i) ans += sa[i];
    return ans;
}
void update(int i, int d) {
    for (; i <= MAX; i += i & -i) sa[i] += d;
}
int main() {
    memset(sa, 0, sizeof sa);
    int n, t, m;
    cin >> n >> m;
    for (int i = 0; i < n; ++i) {
        cin >> t;
        update(i + 1, t);
    }
    for (int i = 0; i < m; ++i) {
        int l, r;
        cin >> l >> r;
        cout << (query(r) - query(l - 1)) << endl;
    }
    return 0;
}
本文为原创文章,欢迎分享,勿全文转载,如果内容你实在喜欢,可以加入收藏夹,说不定哪天故事又继续更新了呢。
本文地址:https://qoogle.top/pre-sum-binary-indexed-tree/
最后修改日期:2020年6月18日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。