博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树状数组
阅读量:6149 次
发布时间:2019-06-21

本文共 828 字,大约阅读时间需要 2 分钟。

//树状数组//支持给某位置增加常数与查询前缀和#include
#include
#include
#include
#include
#include
using namespace std;int n,a[1001],tree[1001];//tree树状数组 int lowbit(int x)//表示2^k k是二进制数x的末尾0个数{ return x&(-x); }int query(int x){ int sum=0; int time=lowbit(x); for(int i=x;i>0;i-=time) sum+=tree[i]; return sum;} int add(int x,int y){ int time=lowbit(x); for(int i=x;i<=n;i+=time) tree[i]+=y;}int main(){ cin>>n; for(int i=1;i<=n;i++)//初始化1 { cin>>a[i]; add(i,a[i]); } //单位置修改+区间求和[L~R] { add(x,y); a[i]=y; int ans=query(R)-query(L-1); } for(int i=1;i<=n;i++)//初始化2 { cin>>a[i]; add(i,a[i]-a[i-1]); } //区间修改[L~R]+单位置查询 { add(L,y); add(R+1,-y); int ans=query(x); } return 0;}

 

转载于:https://www.cnblogs.com/water-radish/p/9280658.html

你可能感兴趣的文章
List Collections sort
查看>>
Mysql -- You can't specify target table 'address' for update in FROM clause
查看>>
使用局部标准差实现图像的局部对比度增强算法。
查看>>
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>
showdialog弹出窗口刷新问题
查看>>
java
查看>>
Vue.js连接后台数据jsp页面  ̄▽ ̄
查看>>
关于程序的单元测试
查看>>
mysql内存优化
查看>>
都市求生日记第一篇
查看>>
Java集合---HashMap源码剖析
查看>>
SQL优化技巧
查看>>
thead 固定,tbody 超出滚动(附带改变滚动条样式)
查看>>