树状数组

树状数组一种可以快速区间操作的算法,与差分不同的是,树状数组在线,和线段树一样,而差分则是离线。下面我就来讲一讲。

1.简介

树状数组一共有3个步骤,分别是:lowbit、增加结点数值、查询,并且附有main函数。

2.代码

1.lowbit

int lowbit(int x){
	return x & -x;
}

2.增加结点数值

int n, tree[100005];//n和树状数组

void add(int x, int v){//x为增加数值的结点编号,v为增加的数值
	while (x <= n){
    	t[x] += v;
        x += lowbit(x);
	}
}

3.查询

int check(int x){
	int sum = 0;
    
    while (0

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

c++算法大全 文章被收录于专栏

本专栏收集了c++大部分基础算法,附有简介和代码。

全部评论
上新一下线段树呗!
2 回复 分享
发布于 08-27 16:02 北京
树状数组和线段树的功能一样吗?我觉得不太一样。
点赞 回复 分享
发布于 09-02 11:34 北京

相关推荐

评论
4
4
分享

创作者周榜

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