[转]线段树
来源:互联网 发布:java 自定义属性 编辑:程序博客网 时间:2024/06/05 10:38
实际上还是称为区间树更好理解一些。
树:是一棵树,而且是一棵二叉树。
线段:树上的每个节点对应于一个线段(还是叫“区间”更容易理解,区间的起点和终点通常为整数)
同一层的节点所代表的区间,相互不会重叠。
叶子节点的区间是单位长度,不能再分了。
线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。a,b通常是整数。每一个叶子节点表示了一个单位区间。对于每一个非叶结点所表示的结点[a,b],其左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2,b](除法去尾取整)。
线段树的基本用途:
线段树适用于和区间统计有关的问题。比如某些数据可以按区间进行划分,按区间动态进行修改,而且还需要按区间多次进行查询,那么使用线段树可以达到较快查询速度。
个人感觉线段树比较灵活,要多做一些题目才能对线段树有一个大概的掌握。
网上看见了一些线段树的资料,这里也贴出来。
线段树的一种简化实现
http://www.cnitblog.com/cockerel/archive/2006/09/13/16806.html
线段树(区间树)Segment Tree
http://www.wutianqi.com/?p=1140
http://www.wutianqi.com/?p=1369
线段树基础知识
http://hi.baidu.com/lemon_cn/blog/item/2093b64bd63797f682025c9f.html
线段树的构造过程
http://kmplayer.javaeye.com/blog/576486
RMQ问题以及ST算法
http://hi.baidu.com/wjn123335/blog/item/4d485a08414c5ed362d9868a.html
数据结构 – 线段树
http://www.cnblogs.com/superbin/archive/2010/07/17/1779842.html
http://www.cnblogs.com/superbin/category/253674.html
http://www.cnblogs.com/superbin/archive/2010/08/02/1790467.html
线段树模版
http://www.cppblog.com/NicYun/archive/2008/08/05/58037.html
线段树
http://blog.chinaunix.net/u3/102500/showart_2257428.html
- 线段树简介(转)
- 线段树(转)
- 线段树专辑(转)
- 线段树专辑(转)
- 线段树专辑(转)
- 线段树入门【转】
- 线段树入门( 转 )
- [转]线段树入门
- 【转】关于线段树
- 【转】线段树总结
- [转]线段树汇总
- [转]线段树
- 线段树 (转)
- 线段树?线段树!
- 线段树?线段树!
- 线段_线段树
- 线段_线段树
- 【完全版】线段树[转]
- [转]由poj 1067引发的——取石子游戏【各类取石子总结】
- [转]POJ 1067:取石子游戏
- POJ 1833:排列 [#使用STL的next_permutation函数生成全排列#]
- [转]七个高效的文本编辑习惯(以Vim为例)
- [转]线段树汇总
- [转]线段树
- POJ 2689/ ZOJ 1842: Prime Distance[两次筛法/筛选法平移]
- POJ 2417:Discrete Logging——Baby Step, Giant Step
- Openstack Nova Failed to allocate network(s)
- POJ 3243: Clever Y 求A^X = B (mod C) / BabyStep_GiantStep
- POJ 1023 : The Fun Number System - 二进制
- LeetCode-Search Insert Position
- POJ 1995/ ZOJ 2150 : Raising Modulo Numbers - 快速幂取模
- POJ 1079 : Ratio - 分数逼近