问题1: 线段树空间只需要2*n即可???

对于这种建图方式,建出来的并不是完全二叉树,而是具有完全二叉树性质(父节点为x,则左儿子为2x,右儿子为2x+1),好处:可以省掉许多并不需要的节点。由于具有完全二叉树这种性质,2*n空间一定不够用!!见下图:

问题2: 线段树空间只需要3*n即可???

证明: 设长度为N的数组在线段树中,编号最靠右的节点为F(N)。(上图长度n=6,编号最右节点为13)

代码测试:

思路:通过观察在建树过程中,最大的节点来判断是否会3*n空间越界。

结果:通过发现,存在许多的3n空间的越界,最小的n=36,平时我们手动画一画,看是否3n越界,可能只是画的n比较小,所以画一画n=36,你将发现3*n会越界!!!

转载于:https://www.cnblogs.com/FengZeng666/p/11446827.html

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

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

    转自: http://scinart.github.io/acm/2014/03/19/acm-segment-tree-space-analysis/ 最近在看<具体数学>,这篇当做是一 ...

  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. 【线段树合并】解题报告:luogu P4556雨天的尾巴 (树上对点差分 + 动态开点 + 线段树合并)线段树合并模板离线/在线详解

    题目链接:雨天的尾巴 本题本身是一个非常简单的一道树上差分的模板题,但是由于变态的数据范围,我们直接用数组是存不下的(本来使用一颗普通的线段树直接维护最大值即可.但是本题的空间只有128MB,直接按照 ...

  9. HDU - 6183 暴力,线段树动态开点,cdq分治

    B - Color itHDU - 6183 题目大意:有三种操作,0是清空所有点,1是给点(x,y)涂上颜色c,2是查询满足1<=a<=x,y1<=b<=y2的(a,b)点一 ...

最新文章

  1. 【加密U盾】在LINX操作系统中部署KD电子钥匙
  2. 李永乐线性代数手写笔记-向量
  3. 第十一节: EF的三种模式(一) 之 DBFirst模式(SQLServer和MySQL两套方案)
  4. 计算机学3d建模吗,计算机三维建模与动画基础
  5. 使用SQL Server更改跟踪创建SQL Server审核
  6. 参加2015年TOP100会议的零散笔记
  7. oracle解密des乱码,Oracle定义DES加密解密及MD5加密函数示范
  8. 美赛只用matlab够,美赛思路
  9. NOI题库1.1-1.10答案
  10. 漫画:程序员找工作—外包公司
  11. mysql复购率_Mysql与Pyhton实现复购率和回购率
  12. 通过耳道形状来验证用户身份?苹果:未来,AirPods可能实现
  13. 数字门店要怎么运营,才能助力线下门店降本增效?
  14. 【Bugfix系列】/usr/bin/ld: cannot find -lxxx 的解决办法
  15. 手机充电原理分析及问题总结
  16. 铟镓砷探测器-主要厂商产品特点、产品规格、价格、销量、销售收入及市场现状
  17. java虚拟机学习笔记
  18. 用Sublime写LaTex
  19. python pandas 分类汇总_pandas去重复行并分类汇总的实现方法
  20. ubuntu 15.10运行Xware-desktop失败问题

热门文章

  1. Gradle Build速度加快终极方法(android studio)
  2. MySql字符串函数使用技巧
  3. Zabbix 3.0 部署监控 [三]
  4. 计算 JS 数组中最大最小值
  5. 陷阱:C++模块之间的”直接依赖“和”间接依赖“与Makefile的撰写
  6. 空军哥军姐新装——帅
  7. /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh: No such file or directory解决方案
  8. 交叉熵(cross entropy)概念整理
  9. numpy.matrixlib.defmatrix.matrix写入csv文件
  10. 深度学习(二十四)——L2 Normalization, Attention(1)