![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
无_问
这个作者很懒,什么都没留下…
展开
-
二维树状数组的差分,区间修改(学习总结)附poj2155练习
一维和二维树状数组最一般的就是单点修改和区间查询了。如果要完成区间修改这得借助差分.普通的差分a[i]=a[i]-a[i-1];如果放入二维数组中该怎么进行差分呢。二维数组前缀和:例如sum[x][y]表示的就是点(1,1)与点(x,y)之间的子矩阵内的元素和。看一个矩阵:此时如果要求绿色区域矩阵的和(包含a(x1,y1)这个点)那么整个大矩阵减去橙白黑三个小矩阵,整个过程中橙色会被多减一次所以要加上来。ans=sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum原创 2020-05-23 09:35:58 · 369 阅读 · 0 评论 -
POJ3264树状数组解法
POJ3264链接题意很简单,多次查询给定区间的最大值和最小值.树状数组的区间求值问题这里有讲解点击进入特别注意输入要用scanf.#include<iostream>#include<cstring>#include<cmath>#include<vector>#include<cstdio>#define lowbit(x) ((x)&(-x))const int maxn=5e4+10;using namespac原创 2020-05-09 15:49:23 · 208 阅读 · 0 评论 -
树状数组的应用之区间最值维护和查询(个人的学习理解)
对于区间最值的查询和维护,用线段树也能完成.可是树状数组比较好写,时间复杂度也不高,不用白不用-。-用树状数组求区间最值时,先得想一个问题:lowbit(x)在树状数组的作用究竟是什么.在树状数组最基本区间求和中tree[x]代表的是tree[x-lowbit(x)+1,x]的和.比如tree[8]=arr[1]+arr[2]+…+arr[8]由此不难发现lowbit可以表示区间的长度.这点在求区间最值的时候比较重要.既然用来求区间最值问题,那么原来的树状数组模板也得变变,update函数由原来的区原创 2020-05-09 10:51:01 · 462 阅读 · 0 评论