int n, c[maxn];
int lowbit(int x){ return x&(-x); }
void add(int i, int v)
{
while(i <= n){ //这里n为数组最大的有效下标
c[i] += v;
i += lowbit(i);
}
}
int sum(int i)
{
int s = 0;
while(i>0)
{
s += c[i];
i -= lowbit(i);
}
return s;
}
【模板】树状数组
最新推荐文章于 2024-11-01 17:00:11 发布