int t[maxn];
int lowbit(int x)
{
return x & (-x);
}
void add(int x,int v)
{
while(x <= maxn)
{
t[x] += v;
x += lowbit(x);
}
}
int query(int x)
{
int sum = 0;
while(x > 0)
{
sum += t[x];
x -= lowbit(x);
}
return sum;
int lowbit(int x)
{
return x & (-x);
}
void add(int x,int v)
{
while(x <= maxn)
{
t[x] += v;
x += lowbit(x);
}
}
int query(int x)
{
int sum = 0;
while(x > 0)
{
sum += t[x];
x -= lowbit(x);
}
return sum;
}
O(logn)内查询区间和、修改单点值。