首页 > 其他分享 >【线段树】动态开点

【线段树】动态开点

时间:2023-01-12 18:57:14浏览次数:30  
标签:调用 log 递归 线段 区间 动态 节点

使用场景

  1. 维护的区间太大以至于 \(4N\) 存不下,通常是权值线段树;
  2. 维护的区间下标存在负数;

时间复杂度

  1. 全部开点,则 \(O(2N - 1)\)
  2. 每递归一次,最多开点 \(O(\log_N)\) ,若调用 \(M\) 次, \(O(M\log_N)\)

原理

  1. 若一段子区间 \([L,R]\) 对应的线段树节点为 \(cur\) ,当不需要递归时,就不建点;

  2. 当调用 addtag() 时,新建节点。

注意事项

标签:调用,log,递归,线段,区间,动态,节点
From: https://www.cnblogs.com/Sengyi/p/17047661.html

相关文章

  • 动态修改网页的 icon 和 title
    在public的index.html中使用link和title占位(内容随意,获取到数据之后此处的内容会被覆盖)在App.vue中调用接口获取数据,找到link和title元素,将获取的数据赋值 ......
  • 【动态规划】博弈问题
    目录博弈问题应用应用1:Leetcode.486题目方法一:动态规划(自底向上)解题思路边界条件状态转移代码实现方法二:动态规划(自顶向下)解题思路代码实现方法三:动态规划解题思路边界条件......
  • 线段树合并
    线段树合并温馨提示:学习此内容之前,确保你会动态开点如果不太会,可以自行搜搜。什么是线段树合并(如果会了可以自行跳过)总的来说,就是把两颗形状一样的线段树合并在一起(特......
  • 存储过程动态sql执行
    DELIMITER$$USE`test`$$DROPPROCEDUREIFEXISTS`Prc_TelSuccess_Snapshot_Update`$$CREATEDEFINER=`ccstest`@`%`PROCEDURE`Prc_TelSuccess_Snapshot_Update......
  • vue动态挂载组件
    平时我们渲染组件都是通过路由的方式。但有时候不太满足需要,需要我们手动去挂载组件。方式如下:通过调用一个方法去实现动态挂载组件:importVuefrom"vue"importj......
  • 静态Web服务器-命令行启动动态绑定端口号Python解释器详解实现代理池的API模块
    学习目标能够写出获取终端命令行参数动态绑定端口号的web服务器程序1.开发命令行启动动态绑定端口号的静态web服务器实现步骤:获取执行python程序的终端命令行参数判断参数......
  • hdu:I Hate It(线段树单点更新)
    ProblemDescription很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照......
  • vue3之 element-plus的动态图标
    Vue2中使用ElementUI的图标渲染是通过<iclass="el-icon-plus"></i>渲染Vue3中使用ElementPlus图标渲染是通过<el-icon><Plus/></el-icon>渲染所以在使用ElementU......
  • 动态范围控制原理
    DRC介绍开门见山,动态范围的定义就是信号的最大幅值和最小幅值比值的对数(单位dB),动态范围会受到系统中各个环节的影响。例如同样是这段音乐,在一个40dB背景噪声......
  • c++静态库和动态库的添加
    #声明要求的cmake最低版本cmake_minimum_required(VERSION2.8)#声明一个cmake工程project(helloSLAM)#设置编译模式set(CMAKE_BUILD_TYPE"Debug")#共享库add_l......