zhao_ry514114
赵若伊

导航

 
#include<bits/stdc++.h>
using namespace std;
#define N 1000010
int n, m;
long long c[N];
int lowbit(int x) {
    return x & (-x);
}
void add(int x, int y) {
    for (int i = x; i <= n; i += lowbit(i)) {
        c[i] += y;
    }
}
long long getsum(int x) {
    long long s = 0;
    for (int i = x; i > 0; i -= lowbit(i)) {
        s += c[i];
    }
    return s;
}
long long query(int l, int r) {
    return getsum(r) - getsum(l - 1);
}
int main() {
    scanf("%d%d", &n, &m);
    int k, x, y;
    for (int i = 1; i <= n; i++) {
        scanf("%d", &x);
        add(i, x);
    }
    while (m--) {
        scanf("%d%d%d", &k, &x, &y);
        if (k == 1) {
            add(x, y);
        }
        else {
            printf("%lld\n", query(x, y));
        }
    }
    return 0;
}

posted on 2025-08-25 21:31  zhao_ry514114  阅读(6)  评论(0)    收藏  举报