线段树(segment tree)
来源:互联网 发布:iphone5c支持4g网络吗 编辑:程序博客网 时间:2024/05/24 04:05
线段树为什么要开4倍空间
数学证明:http://scinart.github.io/acm/2014/03/19/acm-segment-tree-space-analysis/
理论上是2n-1的空间,但是你递归建立的时候当前节点为r,那么左右孩子分别是2*r,2*r+1,此时编译器并不知道递归已结束,因为你的结束条件是在递归之前的,所以编译器会认为下标访问出错,也就是空间开小了,应该再开大2倍。有时候可能你发现开2,3倍的空间也可以AC,那只是因为测试数据并没有那么大。
- 局限性:
利用线段树,我们可以高效地询问和修改一个数列中某个区间的信息,并且代码也不算特别复杂。
但是线段树也是有一定的局限性的,其中最明显的就是数列中数的个数必须固定,即不能添加或删除数列中的数。
相关资料:
http://dongxicheng.org/structure/segment-tree/
http://blog.csdn.net/metalseed/article/details/8039326
http://blog.csdn.net/libin56842/article/details/8530197
http://blog.csdn.net/x314542916/article/details/7837276
0 0
- 线段树(segment tree)
- 线段树(Segment Tree)
- 线段树(segment tree)
- segment tree(线段树)
- Segment Tree(线段树)
- 线段树(segment tree)
- 线段树(segment tree)
- 线段树(segment tree)
- 线段树(segment tree)
- 线段树(segment tree)
- 线段树(segment tree)
- 线段树(segment tree)
- segment tree(线段树)
- 线段树(Segment Tree)简介
- 线段树(segment tree) code
- 浅谈线段树 Segment Tree
- Segment Tree-线段树学习
- XTU1238:Segment Tree(线段树)
- C++内存管理
- linux 线程学习之条件变量
- oracle学习笔记-oracle数据库逻辑结构(2)
- Linux进程管理
- Jackson实现Object对象与Json字符串的互转
- 线段树(segment tree)
- cin/getline/gets
- 直播间用户列表头像角标效果
- JSCONCPP
- Java常用方法函数总结
- Java反射之文本导出
- 深入理解Java对象克隆
- stackoverflow重要性
- LeetCode--No.14--Longest Common Prefix