AC

许诺  •  2天前


#include <iostream>
#include <vector>

using namespace std; class FenwickTree { private:

vector<int> tree;
int n;

public:

FenwickTree(int size) : n(size), tree(size + 1, 0) {}
void update(int index, int delta) {
    while (index <= n) {
        tree[index] += delta;
        index += index & -index;
    }
}
int query(int index) {
    int sum = 0;
    while (index > 0) {
        sum += tree[index];
        index -= index & -index;
    }
    return sum;
}

}; int main() {

ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
FenwickTree ft(n);
vector<int> nums(n + 1);
for (int i = 1; i <= n; ++i) {
    cin >> nums[i];
    ft.update(i, nums[i]);
}
while (m--) {
    int k, a, b;
    cin >> k >> a >> b;
    if (k == 1) {
        ft.update(a, b);
    } else {
        int sum = ft.query(b) - ft.query(a - 1);
        cout << sum << '\n';
    }
}
return 0;

}


评论:

请先登录,才能进行评论