
洛谷 P3374 【模板】树状数组 1
发布日期:2021-05-07 13:07:11
浏览次数:12
分类:原创文章
本文共 706 字,大约阅读时间需要 2 分钟。
吼吼吼
今天学习了树状数组
前一段时间没有认真看别人的讲解,
所以一直觉得很难,
今天仔细学了学,发现好像没那么难呢!
习题抽空做 !
想学习树状数组的同学可以在洛谷此题的第一篇题解上学习,非常容易理解()
不多说,上模板!
#include<iostream>#include<cstdio>using namespace std;int n,m,a,w,x,y;int tree[5000010]; int lowbit(int x) //去掉从右往左数第一个1{ return x&-x;}void add(int i,int k) //单点修改{ while(i<=n) { tree[i]+=k; i+=lowbit(i); }}int sum(int x) //区间求和{ int ans=0; while(x!=0) { ans+=tree[x]; x-=lowbit(x); } return ans;}int main(){ cin>>n>>m; for(int i=1; i<=n; i++) { scanf("%d",&a); add(i,a); } for(int i=1; i<=m; i++) { scanf("%d%d%d",&w,&x,&y); if(w==1) add(x,y); else if(w==2) cout<<sum(y)-sum(x-1)<<endl; //巧妙之处,很像前缀和的求法 } return 0;}
发表评论
最新留言
很好
[***.229.124.182]2025年03月31日 13时36分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java中的字符串
2019-03-04
Idiot 的间谍网络
2019-03-04
MySql索引及使用、实现的数据结构
2019-03-04
初探SSRF漏洞
2019-03-04
pythonBug入门——从零开始学python
2019-03-04
js中[]、{}、()的区别
2019-03-04
js-禁止右键菜单代码、禁止复制粘贴代码
2019-03-04
搭建samba服务器
2019-03-04
Java: 错误: 不支持发行版本 5
2019-03-04
SpringBoot中使用Mybatis访问MySQL数据库(使用xml方式)
2019-03-04
python中的map( )函数及lambda()函数简介
2019-03-04
轮播图——旋转木马(Jquery)
2019-03-04
普通平衡树板子
2019-03-04
JSP内置对象:操作cookie、session对象
2019-03-04
【SE-02】多线程-02
2019-03-04
$set的使用(视图不能实时更新)
2019-03-04
一、硬件防火墙
2019-03-04
Javaweb jQuery功能练习
2019-03-04
余生,愿你能靠近那些正能量的人——
2019-03-04
蓝桥杯入门练习题斐波那契数列
2019-03-04