树状数组
统计给定数组的 a 的前缀和,支持单点修改。
const int MAX = 1e5+5;
int n, c[MAX];
//查询 1-x 位置的前缀和
int ask(int x){
int ans = 0;
for(; x; x -= x&-x) ans += c[x];
return ans;
}
//单点修改位置 x 的数值
void add(int x, int y){
for(; x <= n; x += x&-x) c[x] += y;
}
例题
标题: | 信息学竞赛模板(十一)— 树状数组 |
---|---|
链接: | https://www.fightingok.cn/detail/81 |
更新: | 2022-09-18 22:37:19 |
版权: | 本文采用 CC BY-NC-SA 3.0 CN 协议进行许可 |