您的位置:首页 > 其它

树状数组

2016-04-24 10:54 344 查看
树状数组

lowbit(x)=x&(-x);

//增加某个元素的大小,向上更新,n为数组的长度

void plu(int pos,int num)

{

        While(pos<=n)

        {

                 c[pos]+=num;

                 pos+=lowbit(pos);

        }

}

//求前a项和

int sum(int a)

{

        intsum=0;

        while(a>0)

        {

                 sum+=c[a];

                 a-=lowbit(a);

}

}

HDU 1556

给长度为N的区间,给一些子区间涂色,问每个点被涂了多少次

A:区间左端+1,区间右端的下一个-1,这样从点1到该点的总和为该区间被涂色的总次数;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  树状数组