终于是解决了这个题目了不过不知道下一次碰到主席树到底做不做的出来,这个东西稍微难一点就不一定能做得出离散化+扫描线式的建树,所以对于某个坐标二分找到对应的那颗主席树,即搜索出结果即可(因为是扫描线式的建树,找到对应的树之后,就知道该点上面的线段有多少条了)其他就是普通主席树的操作了主席树里面维护两个...
分类:
其他好文 时间:
2014-08-10 18:00:10
阅读次数:
254
首先来简单说下一些关于的基本概念。
树是一种非线性的数据结构
1,树是由 n(n>=0) 个结点组成的有限集合
如果n = 0 ,称为空树
如果n > 0,则:
有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱
除了根以外的其他结点划分为:m(m>=0)个互不相交的有限集合,T0,T1,T2…Tn-1,每个集合又是一棵树,并且称之为根的子树...
分类:
编程语言 时间:
2014-07-06 10:09:02
阅读次数:
234
一般来说,树状数组可以实现的东西线段树均可胜任,实际应用中也是如此。但是在二维中,线段树的操作变得太过复杂,更新子矩阵时第一维的lazy标记更是麻烦到不行。
但是树状数组在某些询问中又无法胜任,如最值等不符合区间减法的询问。此时就需要根据线段树与树状数组的优缺点来选择了。
做一下基本操作的对比,如下图。
因为线段树为自上向下更新,从而可以使用lazy标记使得矩阵的更新变的高校起来,几个不...
分类:
其他好文 时间:
2014-06-18 06:11:05
阅读次数:
326
注意:
1 判断一个节点是否平衡的方法
2 平衡一个节点的方法 :
我这里比原文改进一点,独立出一个平衡节点的函数balanceNode(),这样一个函数可以用来平衡插入和删除操作,使得代码更加简洁了。
这样修改之后就使得平衡二叉树好像和一般二叉树的操作比较,就是多了一个平衡操作。
3 删除操作情况很多,很困难,一定要理清思路。十分容易出bug的地方。
这里是查找后继节点的值,填补上到...
分类:
其他好文 时间:
2014-06-05 05:16:45
阅读次数:
261