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

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

暴力树状数组30分,这该怎么办;

知识点回顾

差分数组中

开头结尾改变了值之后

求他的前缀,发现区间内所有数都改变

然后我们做差分树状数组


#include
using namespace std;int n,m;int c[501010];int lowbit(int x){ return x&-x; }void update(int i,int x){ while(i <= n){ c[i] += x; i += lowbit(i); }}int sum(int x){ int sum = 0; while(x){ sum += c[x]; x -= lowbit(x); } return sum;}int main(){ scanf("%d%d",& n,& m); int x, y, z, k; for(int i = 1;i <= n;++ i){ scanf("%d",& x); update(i,x),update(i+1,-x); } while(m-- ){ scanf("%d",& z); if(z == 2){ scanf("%d",& x); printf("%d\n",sum(x)); }else{ scanf("%d%d%d",& x,& y,& k); update(x, k);update(y+1, -k); } } return 0;}

 

转载于:https://www.cnblogs.com/dsrdsr/p/8987095.html

你可能感兴趣的文章
向量非零元素个数_向量范数详解+代码实现
查看>>
java if 用法详解_Java编程中的条件判断之if语句的用法详解
查看>>
java 什么题目好做_用java做这些题目
查看>>
matlab sin函数 fft,matlab的fft函数的使用教程
查看>>
mysql adddate()函数
查看>>
mysql sin() 函数
查看>>
mysql upper() 函数
查看>>
单片机复位电路
查看>>
php json_decode失败,返回null
查看>>
oracle 分页
查看>>
助教学期总结
查看>>
绘制基本 图形之矩形与多边形
查看>>
3-day3-list-truple-map.py
查看>>
Edit控件显示多行文字
查看>>
JS第二周
查看>>
dataTable.NET的search box每輸入一個字母進行一次檢索的問題
查看>>
Python 文件处理
查看>>
邻接表详解
查看>>
服务器一:分布式服务器结构
查看>>
迭代dict的value
查看>>