树状数组

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

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 < x){
    	sum += t[x];
        x -= lowbit(x);
    }
    
    return sum;
}

附.main

int main(){
	int n, m;
    
    cin >> n >> m;
    
    for (int i = 1; i <= n; i++){
    	int x;
        
        cin >> x;
        
        add(i, x);
    }
    
    for (int i = 1; i <= n; i++){
    	int x, y;
        string s;
        
        cin >> s >> x >> y;
        
        if ("add" == s) add(x, y);//增加
        else cout << check(y) - check(x-1) << endl;//查询
    }
    
    return 0;
}

这就是树状数组的全部了,点个赞呗。欢迎在评论区留言!

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

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

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

相关推荐

头像
09-02 16:56
已编辑
字节跳动_研发(实习员工)
哈哈哈哈哈,做个标题党,实际上是因为我们部门缺人,想要招实习生,不过我们部门确实不会打杂,会给实习生很大的权限去做高价值的需求。✨&nbsp;来我们组实习,你将收获什么?答应我,千万别觉得实习就是打杂!我们这儿绝对让你深度参与,怒刷经验值!📈-&nbsp;🤯&nbsp;亲手操刀亿级流量:&nbsp;你的代码会直接影响全球亿万用户的体验!什么“双列推荐”、“搜后推”,说白了就是让你刷到的图文更好看、更懂你!这种成就感,谁懂?!-&nbsp;🧑‍💻&nbsp;告别打杂,不做螺丝钉:&nbsp;你会直接参与核心业务,从&nbsp;0&nbsp;到&nbsp;1&nbsp;参与新功能的设计和开发。脑洞大开的想法?我们欢迎!想搞点事情?我们支持!-&nbsp;👨‍🏫&nbsp;大神带飞,成长Max:&nbsp;组里的大牛多到数不清!来了就有专属&nbsp;Mentor&nbsp;一对一带你,从写代码到解决问题,全程保驾护航。技术成长速度绝对起飞!✈️-&nbsp;💖&nbsp;团队氛围超Nice:&nbsp;哥哥姐姐们都超好,氛围轻松到起飞!随时可以battle技术问题,也随时可以一起约饭约游戏。来了就是一家人!---🤔&nbsp;我们希望你...别紧张!我们不要求你样样精通,只要你:-&nbsp;💻&nbsp;基础扎实:&nbsp;计算机基础知识要牢固呀,至少会一门主流语言&nbsp;(Python/Go/C++/Java&nbsp;都可)。-&nbsp;🔥&nbsp;有热情,爱学习:&nbsp;对技术有那么一股子钻研劲儿,愿意主动学习新东西。-&nbsp;🤝&nbsp;是个好的&nbsp;Team&nbsp;Player:&nbsp;乐于沟通,善于合作,毕竟我们是要一起并肩作战的!---福利待遇?必须拉满!🎉-&nbsp;💰&nbsp;业界超有竞争力的实习薪资-&nbsp;☕️&nbsp;下午茶、零食、咖啡无限畅饮-&nbsp;🏠&nbsp;房补、免费三餐,帮你省下一大笔钱!-&nbsp;...&nbsp;更多隐藏福利等你来解锁!---📮&nbsp;心动了吗?简历快砸过来!私信我,我给你发内推链接!!!!真的很缺人!!!!
你觉得实习只能是打杂吗?
点赞 评论 收藏
分享
评论
4
4
分享

创作者周榜

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