自用板子
```
//树状数组模板,单点修改,区间查询;
#include <bits/stdc++.h>
using namespace std;
int n, m, tree[2000010];
int lowbit(int k)
{
return k & -k;
}
void add(int x, int k)
{
while (x <= n)
{
tree[x] += k;//tree[x] = max(tree[x],k);
x += lowbit(x);
}
}
int ask(int x) //询问的是前缀//
{
int ans = 0;
while (x != 0)
{
ans += tree[x];//ans = max(tree[x],ans);
x -= lowbit(x);
}
return ans;
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
int a;
cin >> a;
add(i, a);
}
for (int i = 1; i <= m; i++)
{
int a, b, c;
cin >> a >> b >> c;
if (a == 1)
add(b, c);
if (a == 2)
cout << ask(c) - ask(b - 1) << endl;
}
}
```