树状数组入门

教程地址html

int lowbit(int i) {
    return i & (-i);
}
int sum(int i) {//区间[1,i]的和
    int ans = 0;
    while (i>0) {
        ans += c[i];
        i -= lowbit(i);
    }
    return ans;
}
void insert(int i,int val) {//插入
    while (i<=N) {
        c[i] += val;
        i += lowbit(i);
    }
}
相关文章
相关标签/搜索