博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树状数组模板2——区间修改,单点查询
阅读量:6462 次
发布时间:2019-06-23

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

树状数组的模板,修改整个区间的值(加上x),查询某个节点,此处展示一个非差分的方法

 

 

1 #include
2 #include
3 using namespace std; 4 5 int c[500010],n,m,a[500010]; 6 7 int read() 8 { 9 int x=0,f=1;10 char c=getchar();11 while (!isdigit(c))12 f=c=='-'?-1:1,c=getchar();13 while (isdigit(c))14 x=(x<<1)+(x<<3)+(c^48),c=getchar();15 return x*f;16 }17 18 int lowbit(int x)19 {20 return x&-x;21 }22 23 int query(int x)24 {25 int ans=0;26 for (;x;x-=lowbit(x))27 ans+=c[x];28 return ans;29 }30 31 int update(int x,int val)32 {33 for (;x<=n;x+=lowbit(x))34 c[x]+=val;35 }36 37 int main()38 {39 int i,j,t,p;40 n=read(),m=read();41 for (i=1;i<=n;i++)42 a[i]=read();43 while (m--)44 {45 t=read();46 if (t==1)47 {48 i=read(),j=read(),p=read();49 update(i,p);50 update(j+1,-p);51 }52 else53 {54 p=read();55 printf("%d\n",a[p]+query(p));56 }57 }58 return 0;59 }

 

转载于:https://www.cnblogs.com/Ronald-MOK1426/p/8848868.html

你可能感兴趣的文章
Eclipse添加新server时无法选择Tomcat7的问题
查看>>
L207
查看>>
nginx 配置https 负载均衡
查看>>
双拓扑排序 HDOJ 5098 Smart Software Installer
查看>>
三分 POJ 2420 A Star not a Tree?
查看>>
36.Node.js 工具模块--OS模块系统操作
查看>>
存储过程报错行提示
查看>>
第一篇markdown博文
查看>>
Leetcode 4 - median-of-two-sorted-arrays
查看>>
ERDAS软件应用(四)遥感影像数据增强
查看>>
修改OBS为仅直播音频
查看>>
完整版:《开源框架实战宝典电子书V1.0.0》内测版下载地址!
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
CKEditor的使用-编辑文本
查看>>
HDU------checksum
查看>>
使用树莓派拍摄延时动画,制作GIF图
查看>>
css命名规范
查看>>
js 效果
查看>>
19.Java5同步集合类的应用
查看>>
<c:forEach varStatus="status">中 varStatus的作用
查看>>