转自: http://scinart.github.io/acm/2014/03/19/acm-segment-tree-space-analysis/

最近在看《具体数学》,这篇当做是一个练习吧。

假设我们用一个数组来头轻脚重地存储一个线段树,根节点是1,孩子节点分别是2n, 2n+1, 那么,设线段长为L(即[1..L+1))

设树的高度为H,对H,有:

H(L)={1,1+H(⌈L2⌉),L = 1L > 1

这是一个很简单的递归式,并用公式3.11逐次代换,就等到

H(L)=k+H(⌈L2k⌉),其中 k 是满足2k≥L的最小值

所以

H(L)=⌈lgL⌉+1.

所以显然所需空间为

2H−1==≤=2⌈lgL⌉+1−12×2⌈lgL⌉−12×2(L−1)−1,L≥24L−5,L≥2
-- EOF --

线段树为什么要开四倍空间相关推荐

  1. 线段树为什么要开4倍空间

    问题1: 线段树空间只需要2*n即可??? 对于这种建图方式,建出来的并不是完全二叉树,而是具有完全二叉树性质(父节点为x,则左儿子为2x,右儿子为2x+1),好处:可以省掉许多并不需要的节点.由于具 ...

  2. 线段树为什么要开四倍区间大小的数组

    我的想法是,不能理解它,那就记住它!! 但是这里有大佬的想法,欢迎参观:https://blog.csdn.net/smoggyxhdz/article/details/78895672

  3. 线段树 4n 开四倍空间的原因

    线段树 4n 一.为何要使用线段树? 对于某一类问题,我们主要关注的是一个线段或者区间.对于给定区间,更新区间中一个元素或者一个区间的值,查询一个区间[i,j]的最大值.最小值,或者区间数字和. 线段 ...

  4. BZOJ.4553.[HEOI2016TJOI2016]序列(DP 树状数组套线段树/二维线段树(MLE) 动态开点)

    题目链接:BZOJ 洛谷 \(O(n^2)\)DP很好写,对于当前的i从之前满足条件的j中选一个最大值,\(dp[i]=d[j]+1\) for(int j=1; j<i; ++j)if(a[j ...

  5. 【BZOJ】3339: Rmq Problem 3585: mex(线段树+特殊的技巧)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3585 好神的题. 但是!!!!!!!!!!!!!!我线段树现在要开8倍空间才能过!!!!!!!!!! ...

  6. cf914D. Bash and a Tough Math Puzzle(线段树)

    题意 题目链接 Sol 直接在线段树上二分 当左右儿子中的一个不是\(x\)的倍数就继续递归 由于最多递归到一个叶子节点,所以复杂度是对的 开始时在纠结如果一段区间全是\(x\)的两倍是不是需要特判, ...

  7. AcWing 蓝桥杯AB组辅导课 05、树状数组与线段树

    文章目录 前言 一.树状数组 1.1.树状数组知识点 1.2.树状数组代码模板 模板题:AcWing 1264. 动态求连续区间和 例题 例题1.AcWing 1265. 数星星[中等,信息学奥赛一本 ...

  8. 洛谷[P3374] [P3368]树状数组(线段树解法)

    最近学习了线段树,不会树状数组,用线段树舔着脸来做一下 P3374树状数组1https://www.luogu.com.cn/problem/P3374 ac代码 #include<bits/s ...

  9. b+树时间复杂度_前端大神用的学习笔记:线段树和树状数组

    全文篇幅较长,细心理解一定会有收获的♪(^∇^*). 1|0线段树 1|1一些概念     线段树是一种二叉搜索树,每一个结点都是一个区间(也可以叫作线段,可以有单点的叶子结点),有一张比较形象的图如 ...

最新文章

  1. 1024 Palindromic Number
  2. STM32的抢占优先级和响应优先级
  3. Java中的Split方法不适用于一个句号
  4. 贫血模型,充血模型(领域驱动设计)
  5. rust(66)-rust智能指针与类型转换
  6. php post 500 ajax,php – Laravel 5:Ajax Post 500(内部服务器错误)
  7. 异常处理---SpringMVC学习笔记(十)
  8. java 图片上传 预览 demo_图片上传预览
  9. python 中 yield 的使用
  10. Flink 1.12 资源管理新特性回顾
  11. java 信号量Semaphore
  12. 计算两个经纬度的距离_HTML5 地理定位+地图 API:计算用户到商家的距离
  13. IT經理出招 電腦耗電減少
  14. java界面怎么加图片不显示不出来_Java登录界面中添加背景图片,程序无错,但加载不了图片,求帮忙...
  15. SQL Server实际执行计划COST欺骗案例
  16. python网络爬虫课程设计报告摘要_课程设计 Python 网络爬虫(广度优先方法)
  17. 2020中兴捧月-傅里叶-丰收祭赛题常规解法
  18. Linux救援(rescue)模式知识点
  19. 短网址还原 php,php怎么实现短网址还原
  20. [EMNLP 2022] VIRT: Improving Representation-based Text Matching via Virtual Interaction

热门文章

  1. 深圳实验室装修材料考虑大全
  2. 【表盘识别】基于matlab Hough变换钟表表盘识别【含Matlab源码 1069期】
  3. 创建一个全功能的FLV播放器
  4. 四核处理器_国产迷你PC主机评测:128GB,搭载四核处理器,仅掌心大小
  5. 光盘的数据容量 模型
  6. java专业技能写什么_Java开发工程师专业技能范例列表
  7. php 6 下载图片,[独家全程图解]ThinkPHP6框架的下载与安装
  8. MERRA2数据下载与后续处理
  9. 到底啥是JavaScript Mock
  10. photoshop入门教程