- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
二维线段树
二维线段树最主要用于平面统计问题。类似一维线段树,最经典的就是求区间最值
(或区间和),推广到二维,求得就是矩形区域最值(或矩形区域和),对于矩形区域
和,二维树状数组更加高效,而矩形区域最值,更加高效的方法是二维RMQ,但是二维RMQ
不支持动态更新,所以二维线段树还是有用武之地的。
如果对一维线段树已经驾轻就熟,那么直接来看下面两段对比,就可以轻松理解二维
线段树了。
一维线段树是一棵二叉树,树上每个结点保存一个区间和一个域,非叶子结点一定有
两个儿子结点,儿子结点表示的两个区间交集为空,并集为父结点表示的区间;叶子结点
的表示区间长度为1,即单位长度;域则表示了需要求的数据,每个父结点的域可以通过
两个儿子结点得出。
二维线段树是一棵四叉树,树上每个结点保存一个矩形和一个域,非叶子结点一定有
二或四个儿子结点,儿子结点表示的四个矩形交集为空,并集为父结点表示的矩形;叶子
结点表示的矩形长宽均为1,域则表示了需要求的数据,每个父结点的域可以通过四个儿
子结点得出。
一个4x3的矩形,可以用图1的树形结构来表示,给每个单位方块标上不同的颜色易
于理解。
图1
图1中,每个叶子结点的单位面积为1,非叶子结点表示的矩形进行四分后,如图2
所示,四个子矩形分别表示的是儿子结点表示的矩形区域。特殊的,当矩形面积为1XH
或者WX1的时候,变成了一维的情况,这就是为什么有些结点有四个子结点,而有些结
点只有两个子结点的原因了。
图2
基本结构已经清楚了,按照惯例,要介绍一下时空复杂度。
首先来看空间复杂度,一个WxH的矩形,根结点表示的矩形是WxH,令N=
max{W,H},那么这棵二维线段树的深度D=log2(N)+1,当这棵树是一棵满四叉树的时
候,结点数达到最大值,根据等比数列求和公式,最大情况的结点数为(4^D-1)/3。
更加直观的,当N=W=H=2^k,必定是一棵满四叉树,结点数为(4^D-1)/3=
(4^(k+1)-1)/3=(2^(2k+2)-1)/3,去掉分子上的零头1,约等于(4/3)*N^2,
所以空间复杂度为O(N^2)。
再来看时间复杂度,需要分情况:
建树:建树时必定访问到每个结点,而且都是访问一次,所以建树的复杂度为
O(N^2);
单点更新:每次更新一个单位矩形的值,访问时只会访问从树的根结点到叶子结点的
一条路径,所以单点更新的复杂度为O(log2(N))。
区域询问:情况类似一维的区间询问。从根结点开始拆分区域,当询问区域完全覆盖
结点区域时,不需要递归往下走,总体复杂度是O(log2(N)*log2(N))?这里还是
打个问号先,具体是一个log还是两个log记不清了,找个时间证明一下,可以肯定的
是,不会退化成O(N)。
接下来看看每个树结点需要保存一些什么信息,以最值为例,除了保存最值以外,有
可能需要知道这个最值在整个矩形的具体坐标,所以我们的最值信息dataInfo需要保存三
个信息,posx和posy表示最值的具体位置,val保存最值,由于二维线段树的空间复杂度
为O(N^2),所以坐标信息不会很大,为了尽力节省内存,坐标值用short来存即可。最值
val的话看实际情况而定,一般用int就够了。
treeNode则是线段树结点的结构体,其中成员由dataInfo对应的最值和son[4]表示
的子结点编号组成,我们的线段树结点采用静态结点,即每个线段树结点都对应静态数组
nodes中的某个元素,便于通过编号在O(1)的时间内获取到对应树结点的指针,son[4]记
录了四个子结点在nodes中的下标。仔细观察可以发现,
您可能关注的文档
最近下载
- 学会职能和作用探析.doc
- 医学英语综合教程.ppt
- 4《小学科学教育拔尖创新人才培养的模式探索与实践》.pdf
- 教育部人文社科项目结项.docx VIP
- Siemens 西门子工业 SIMATIC S7-1200 S7-1200 固件更新 V4.5 SIMATIC S7-1200 S7-1200 固件更新 V4.5 使用手册.pdf
- 教科版2024科学一年级上册 第二单元 我们自己 1.我们的身体课件.pptx
- 2025中考复习数学考点突破课件:第二章 方程(组)与不等式(组) 考点5 一次方程(组).pptx
- 电网技术改造工程预算定额2020版(共6册).xls
- 小鼠裸鼠肿瘤动物模型课件.pptx
- 高层建筑火灾风险评估细则.doc
文档评论(0)