获得x的管理范围:(也可以写作宏定义)
int lowbit(int x)
{
return x&-x;
}
给x加上k:(不停地找上司,不停地改变,直到到了头)
void add(int x,int k)
{
while(x<=n)
{
c[x]+=k;
x+=lowbit(x);
}
}
求1-x所以元素的值的和:(不停地剩下那段的最高上司,不停地累加,直到到了头)
int getsum(int x)
{
int s=0;
while(x>0)
{
s+=c[x];
x-=lowbit(x);
}
return s;
}
如果要求x-y的元素的值的和呢?
ans=getsum(y)-getsum(x-1);