テンプレート:フェンウィックツリー

int bit[N],n;

int lowbit(int x)
{
    return x&(-x);
}
void add(int i,int x)
{
    while(i<=n)
    {
        bit[i]+=x;
        i+=lowbit(i);
    }
}
void sub(int i,int x)
{
    while(i<=n)
    {
        bit[i]-=x;
        i+=lowbit(i);
    }
}
int sum(int i)
{
    int res=0;
    while(i>0)
    {
        res+=bit[i];
        i-=lowbit(i);
    }
    return res;
}
公開された104元の記事 ウォン称賛7 ビュー4076

おすすめ

転載: blog.csdn.net/qq_43461168/article/details/103428266