本题是最基本的分段树操作了。或者一般叫线段树,不过好像和线段没什么关系,只是分段了。
不使用lazy标志,更新只是更新单点。
如果不使用分段树,那么更新时间效率只需要O(1),使用分段树更新效率就需要O(lgn)了。
但是不是用分段树,那么查询的时间效率是O(n),而分段树查询效率是O(lgn)
这就是amortize分摊了时间,而且lgn真的很快,数据不是非常巨大的时候,接近常数了。
故...
分类:
其他好文 时间:
2014-06-20 12:41:05
阅读次数:
206
链接: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1808
Description
小胖子最近喜欢上了画画,但是他的画画技术很差,只能从零开始,小胖子在一条线上画了很多彩色的球,但是觉得不好看,就想修改。
小胖子站在画前想了又想,他有时会将一些连续的点涂成相同的颜色。但他感觉累...
分类:
其他好文 时间:
2014-06-20 11:13:08
阅读次数:
255
链接刚开始看n挺小,以为是二维的线段树,想了一会也没想到怎么解,之后看到z值非常小,想到可以直接枚举z,确定一个坐标,然后把三维转化为二维,把体积转化为面。枚举z从-500到500,然后用面积并的解法求出单位z坐标上满足题意的面积。把1写成了L,查错查了好久。其余还好,1A。求覆盖超过两次的面积,u...
分类:
其他好文 时间:
2014-06-11 07:36:34
阅读次数:
235
要询问一个数列的某区间的最大值,其中会更新数据。
这样的题目使用树状数组是可以的,但是因为要牵涉到区间操作,故此还是线段树比较好点。
不过使用树状数组也是可以的,就是查询的时候麻烦点,注意计算,不要超出区间了。
看下面的query函数,这是主要的难点函数,其中的-1操作和这个判断r - lowbit(r) >= l,都很蛋疼,一不小心就会出错。
#include
#inc...
分类:
其他好文 时间:
2014-06-08 09:02:49
阅读次数:
345
做法:总体想法是求出一个矩形的面积以及它所包含的矩形,然后用自己的面积减掉所包含的。主要问题是怎样求解它所包含的矩形。因为是没有相交点的,可以利用扫描线的方法去做,类似染色,当前段如果是x色,也就是第x个矩形,那么再把他染成y颜色时,说明x包含y,而当扫到y的上边时,这一段又恢复到x色。标记一下被包...
分类:
其他好文 时间:
2014-06-08 06:31:04
阅读次数:
244
首先想到线段树,然后刚开始写忽然想到树状数组求和岂不是更快,而且编程复杂度又小,于是把之前写的删掉,写树状数组,写完模版之后忽然发现这题竟然是区间修改!于是又删掉重写,忽然发现不会处理又加又乘的,果断看题解……经过几乎两个小时的调试,终于1A。需要注意的是,一定要让线段树的每一个区间保存的值时刻为正...
分类:
其他好文 时间:
2014-06-07 17:04:11
阅读次数:
229
比较基础的一道树链剖分的题 大概还是得说说思路
树链剖分是将树剖成很多条链,比较常见的剖法是按儿子的size来剖分,剖分完后对于这课树的询问用线段树维护——比如求路径和的话——随着他们各自的链向上走,直至他们在同一条链上为止。比较像lca的方法,只不过这里是按链为单位,而且隔壁的SymenYang....
分类:
其他好文 时间:
2014-06-07 16:57:46
阅读次数:
270
1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN)。线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a...
分类:
其他好文 时间:
2014-06-07 16:55:29
阅读次数:
307
这么炫酷的数据结构简直飘逸到不行,竟然在这么狂躁的状态下过了一遍基础题型,略浪费。
强项:在一维的情况下可以完成区间查询,更新,翻转,子区间的增删,确定前驱后即,总是一句话线段树能做的它就能做,线段树不太好做的他也能很方便的实现。
弱项:没有办法向更高维度扩展(反正本渣没有想出来),这也是一个局限吧。代码太长. . . . . 太致命了。
伸展操作:核心操作,通过一系列的旋转将某个节点旋...
分类:
其他好文 时间:
2014-06-07 12:53:50
阅读次数:
210
这难度,简直爽到不行。
前五种操作就不多说了,基础到不能再基础。
第六种操作求最大连续子段和,有点像线段树,没有思路的建议先看一下POJ2750。
代码9000+,挫到荼靡。。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(...
分类:
其他好文 时间:
2014-06-07 12:15:23
阅读次数:
224