树状数组(C++实现)
#include
using namespace std;
const int N = 100;
int A[N];
int C[N];
int n;
int lowbit(int x){
return (-x) & x;
}
//计算从A[1]开始到A[x]的和 即前缀和
int sum(int x){
int ret = 0;
while(x > 0){
ret += C[x]; x -= lowbit(x);
}
return ret;
}
//单点查询
void add(int x,int d){
while(x <= n){
C[x] += d; x += lowbit(x);
}
}
//初始化 树状数组最关键的C数组的初始化
void init(){
for(int x=1;x<=n;x++){
int j = 1
树状数组(C++实现)最先出现在Python成神之路。
共有 0 条评论