树状数组原理

功能:

①快速求前缀和 O ( l o g n ) O(logn) O(logn)

②修改某一个数 O ( l o g n ) O(logn) O(logn)

操作:

①:建树

void add(int x, int c) {
    //树状数组的插入操作
	for (int i = x;i <= n;i += lowbit(i))tr[i] += c;
}

②:区间查询:1 ~ x 前缀和

for(int i = x;i <= n;i += lowbit(i))res += c;

③:单点修改:

for(int i = x;i;i -= lowbit(i))tr[i] += c; 
全部评论

相关推荐

迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务