当前位置: 首页 > news >正文

树状数组(1)

背景

已知一维数组a[n],进行如下操作:修改n次\(a_k\),每次修改完之后立即查询[a,b]的区间和

如果只用前缀和:

  1. 每次查询的时间复杂度——\(O(1)\)
  2. 修改1次\(a_k\),需要\(O(n)\)的时间维护前缀和
  3. 修改n次\(a_k\),时间复杂度\(O(n^2)\)

由此,引入树状数组

作用

解决动态区间的前缀和问题

时间复杂度

\(O(nlogn)\)

模版

#define lowbit(x) ((x)&(-x)) 
int n,tree[M],a[M];void update(int x,int d)//修改元素a[x]+=d 并修改tree[x]
{while(x<=n){tree[x]+=d;x+=lowbit(x);}
} int sum(int x)//求[1,x]前缀和
{int ans=0;while(x>0){ans+=tree[x];x-=lowbit(x);}return ans;
}int main()
{cin>>n; for(int i=1;i<=n;++i){cin>>a[i];update(i,a[i]);}cout<<"old:[3,7] "<<sum(7)-sum(2)<<"\n";update(3,-7);cout<<"new:[3,7] "<<sum(7)-sum(2)<<"\n";return 0;
}

样例

8
5 4 6 5 7 0 1 3

输出

old:[3,7] 19
new:[3,7] 12
http://www.jsqmd.com/news/432951/

相关文章:

  • 《B3846 [GESP样题 一级] 闰年求和》
  • 手动降AI公式:5个维度改写让AI率直降50% - 还在做实验的师兄
  • 线性规划对偶小记
  • 如何在3ds Max中使用Corona渲染器打造逼真夜景!
  • 国内口碑宠物医生优选,2026养宠不再愁,狗狗义眼植入/猫咪眼睑外翻手术/狗狗绝育/宠物体检/眼科,宠物医生推荐排行榜 - 品牌推荐师
  • 863545
  • 好用的HTTPS免费证书在线申请
  • 同是写内容,凭什么他的排名第一?秘密藏在这 16 条SEO内容创作技巧里!!
  • 深入解析Python面向对象中的属性与方法内存管理
  • 2026武汉废旧金属回收优质服务商推荐榜 - 资讯焦点
  • 一键开启大模型微调!Unsloth让“炼丹“门槛降到“会点鼠标“级别
  • 基于Simulink的下垂控制在多整流器并联中的应用​
  • 实测2025抗皱面膜TOP5!BFBY美白修护面膜凭什么稳坐第一?干纹斑点全拿捏 - 资讯焦点
  • 2月做题记录
  • 2026氯化钙优质厂家推荐榜 多维度实力解析 - 资讯焦点
  • 2026年3月国内移民中介公司哪个专业靠谱?正规机构推荐飞际移民! - 资讯焦点
  • 榜单发布:2026年春季养老保险规划推荐TOP6,六家机构价值图谱与选购指南 - 资讯焦点
  • 2026年3月泓动数据唯一总部联系方式,如何联系泓动数据咨询 - 资讯焦点
  • 【图像加密】差分扩展的缩略图保持加密技术【含Matlab源码 15118期】
  • DeepSeek V4横空出世!百万Token长文本处理秒杀GPT-5.2?国产芯加持,效率飙升!
  • 境外投资备案代办公司推荐:合规实操与专业代办机构优选 - 资讯焦点
  • 大厂数据资产评估标准化工具:AI架构师揭秘内部自动化评估平台
  • 还在埋头敲代码?2026年,AI大模型正在“淘汰”不会用它的IT人
  • 格式工厂 v
  • 一款使用 C# 编写专为 Windows 11 打造的文件资源管理器增强工具!
  • 灵影助手11
  • 【二分】BISHI89 山峰数组计数
  • 从实验室到产业化:噬菌体展示技术发展与应用全景
  • 手把手教你学Simulink——基于Simulink的PMSM矢量控制(FOC)d=0策略仿真
  • 杆状病毒-昆虫细胞表达系统解析:多角体启动子驱动的超表达与蛋白复合物组装机制