原文:线段树进阶—动态开点

动态开点线段树 阅读本篇请先学习线段树。 动态开点线段树是一类特殊的线段树,与普通的线段树不同的是,每一个节点的左右儿子不是该点编号的两倍和两倍加一,而是现加出来的。 一般有两种:为了节约空间,我们会不一次性建好树,而是需要时再建。 还有一种,就是运用主席树 可持久化线段树 的时候。 我们先说节约空间用的动态开点线段树。 我们用lson u 记录u的左儿子,rson u 记录u的右儿子 博主不用 ...

2019-08-06 15:41 1 681 推荐指数:

查看详情

线段动态开点

其实在tzt版线段的基础上稍微加一些东西就好了。我们不预先开点,每当需要用到一个点时,我们才开。空间复杂度可以优化到 m(查询)log n。 code(线段1,其实这道题用动态开点没啥意义没啥意义,当作练习) ...

Mon Sep 17 17:58:00 CST 2018 1 647
线段 动态开点

在一些计数问题中,线段用于维护值域(一段权值范围),这样的线段也称为权值线段。为了降低空间复杂度,我们可以不建出整棵线段的结构,而是在最初只建立一个根节点,代表整个区间,当需要访问线段的某棵子树(某个子区间)时,再建立代表这个子区间的节点。采用这种方法维护的线段称为动态开点线段 ...

Wed Jan 23 08:33:00 CST 2019 0 710
动态开点线段

动态开点线段 前置芝士 众所周知,普通线段空间复杂度是 \(O(n*4)\) 所以当n很大的时候,如果正常的去建一颗线段,开4倍n空间显然会炸内存 怎么办呢? 这个时候,动态开点线段出现了。 概念 ​ 动态开点线段是一类特殊的线段,与普通的线段不同的是,每一个节点的左右 ...

Sun Jul 19 21:54:00 CST 2020 1 806
线段进阶学习笔记———动态开点、权值、线段合并

线段主要支持三个操作,插入,修改,查询,可能还有一些奇奇怪怪的都在这些范围内 那么原始的线段还是有一些缺点的 比如,有太多的点没有用到,浪费了太多的空间 板子 题做的很蒙啊 主要还是对于线段的理解问题 动态开点线段 这个很好理解 ...

Sat Apr 24 00:09:00 CST 2021 5 178
浅谈动态开点线段

浅谈动态开点线段 本篇随笔简单讲解一下线段的常见优化技巧——动态开点。 要学动态开点首先得会线段,如果不会的话,看官请走这边—— 简单线段详解 权值线段详解 动态开点的概念和功能 现在要让你维护一棵值域为\(10^9\)的权值线段。 掐指一算,按线段开的话,四倍空间 ...

Sat Apr 04 03:50:00 CST 2020 0 1133
[线段系列] 动态开点线段

不了解线段的朋友可以看看我上一篇博客: [线段系列] 普通线段 补充一个上一篇漏了的点:线段要开4倍空间。 然而面对庞大的数据我们开maxn<<2的空间是肯定开不下的。 这时候就要用到动态开点线段来节省空间了。( 或者离散化 ) 动态开点线段大概长这样( 又是随手 ...

Tue Oct 29 06:31:00 CST 2019 0 506
扫描线讲解,动态开点线段

扫描线   首先,扫描线是干什么的?扫描线一般运用在图形上面,它和它的字面意思十分相似,就是一条线在整个图上扫来扫去,它一般被用来解决图形面积,周长等问题,以一道例题为例。给出n个正方形,这些正方形 ...

Sat Feb 03 06:31:00 CST 2018 2 7104
NOIP2017 列队——动态开点线段

Description: Sylvia 是一个热爱学习的女♂孩子。 前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。 Sylvia 所在的方阵中有n×m名学生,方阵的行 ...

Tue Sep 04 17:04:00 CST 2018 0 875
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM