许诺 • 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;
}
评论:
请先登录,才能进行评论