#define maxn
#define lowbit(x) ((x)&(-x))
int c[maxn]; //i号位之前(含i号位)lowbit(i)个整数之和
//点更新
//update函数将第x个整数加上v
void update(int x,int v)
{
for(int i=x;i<=n;i+=lowbit(i))
{
c[i]+=v;
}
}
//区间查询
//getsum函数返回前x个整数之和
int getsum(int x)
{
int sum=0;
for(int i=x;i>0;i-=lowbit(i))
{
sum+=c[i];
}
return sum;
}
int c[maxn]; //i号位之前(含i号位)lowbit(i)个整数,每个数当前被加了多少
//点查询
void getsum(int x)
{
int sum=0;
for(int i=x;i<=n;i+=lowbit(i))
{
sum+=c[i];
}
return sum;
}
//区间更新
int update(int x,int v)
{
for(int i=x;i>0;i-=lowbit(i))
{
c[i]+=v;
}
}
树状数组(模板)
最新推荐文章于 2023-04-13 21:15:37 发布