具体的原理稍后补上,代码如下:
//树状数组可以用来区间求和 时间复杂度为log(n)
#include<iostream>
#define maxN 100
using namespace std;
int C[maxN];
int A[maxN];
int lowbit(int x)
{
return x&(-x);
}
//Ci=Ai-lowbit(i)+1+....+Ai
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);
}
}
int main()
{
}