线段树为什么要开4倍空间
来源:互联网 发布:我的世界手机版龙珠js 编辑:程序博客网 时间:2024/05/17 06:19
假设我们用一个数组来头轻脚重地存储一个线段树,根节点是1,孩子节点分别是2n, 2n+1, 那么,设线段长为L(即[1..L+1))
设树的高度为H,对H,有:
这是一个很简单的递归式,并用公式(http://scinart.github.io/math/2014/03/16/QA39.2.G733-1994-CM-3/#mjx-eqn-3.11)逐次代换,就等到
所以
所以显然所需空间为
2^H−1=2^(⌈lgL⌉+1)−1
=2×2^(⌈lgL⌉)−1
=2×2(L−1)−1,L≥2
=4L−5,L≥2
-- EOF --(过程来自于http://scinart.github.io/acm/2014/03/19/acm-segment-tree-space-analysis/)跟大家一起分享下!
2 0
- 线段树为什么要开4倍空间
- 线段树为什么要开4倍空间
- 线段树 及 空间为什么是 4倍
- 线段树及空间开4倍
- 线段树为什么要开四倍空间
- 线段树开4N空间证明
- 线段树需要开4倍区间大小的数组的原因
- 二倍空间的线段树
- 线段树分配空间大小问题
- hdu 6183 线段树的空间优化
- TCP四次挥手客户端关闭链接为什么要等待2倍MSL
- 网上销售还有100倍的空间
- 为什么有些人出3倍薪资也挖不走?
- 什么是名空间,为什么要使用它?
- 为什么要用C++之:命名空间
- 为什么要选择香港主机空间
- 为什么要用C++之:命名空间
- 线段树降空间复杂度,从O(4n)降到O(2n)
- 正则表达式的使用
- Log4j源码分析及配置拓展
- 项目所用技术回顾之excel导出(基于poi)
- android Apk反编译教程
- HDU4932 - Miaomiao's Geometry(贪心)
- 线段树为什么要开4倍空间
- Apache2.2多域名虚拟主机配置
- maven和eclipse搭建
- maven之聚合/继承
- 正则表达式基本语法及使用
- A Game with Colored Balls
- java爬虫技术
- PHP函数补完:stream_context_create()模拟POST/GET
- hdu3338 / 方格横纵和问题终极版,最大流斩