树状数组:是一个数据结构
作用:
- 快速求前缀和(时间复杂度:O(logn))
- 修改某一个数(时间复杂度:O(logn))
主要操作:
- 修改:
void add(int x,int c){
for(int i = x; i <= n; i += lowbit(i)) tr[i] += c;
}
- 查询:
int sum(int x){
int res = 0;
for(int i = x; i; i-=lowbit(i)) res+=tr[i];
return res;
}
void add(int x,int c){
for(int i = x; i <= n; i += lowbit(i)) tr[i] += c;
}
int sum(int x){
int res = 0;
for(int i = x; i; i-=lowbit(i)) res+=tr[i];
return res;
}