原文:线段树标记永久化

前言 对于树套树,主席树等使用到线段树的比较复杂的数据结构,如果区间修改的话,打标记后pushdown或者pushup是很难做到的完全不行吧 所以这个时候,一个神奇的东西诞生了。。。 正题 线段树标记永久化,维护一个标记,假设为cov,再维护一个sum 假设修改区间 ql, qr 全部加上v: 和平常一样,到这个区间后cov x v 但是我们又不想pushup,怎么办 很好做,更新的时候每次sum ...

2018-01-06 09:25 0 1029 推荐指数:

查看详情

线段标记永久

线段标记永久 其实线段标记永久是一个非常容易理解的东西,往往我们都会在区间操作时打lazytag,但是在标记下放时会耗费大量的时间,所以我们可以尝试标记永久,这样我们的就不用下放标记,同时代码也更加简洁,因为我们少了一个pushdown函数,同时出错率也会大大降低 ...

Thu Jul 26 17:07:00 CST 2018 0 830
带lazy标记线段

线段的lazy操作 以POJ 2777 Count Color为例。 线段,是一个满的二叉树,每次每一个子节点都是父节点的一半。所以二叉树的每个节点都维护了一个区间。可是实现快速的查询。 对于更新来讲的话,如果每次都更新到最下面的节点,会非常的耗时间。所以假如更新到某个节点的时候,而这 ...

Thu Apr 07 07:23:00 CST 2016 0 2317
线段(单标记+离散+扫描线+双标记)+zkw线段+权值线段+主席及一些例题

“队列进出图上的方向 线段区间修改求出总量 可持久留下的迹象 我们 俯身欣赏” ----《膜你抄》 线段很早就会写了,但一直没有总结,所以偶尔重写又会懵逼,所以还是要总结一下。 引言 在生活和竞赛中,我们总是会遇上一些问题,比如说令人厌恶的统计成绩,老师会想询问几个人中成绩 ...

Wed Apr 18 03:17:00 CST 2018 4 6209
标记永久

1 概述 在可持久线段中,我们常常要使用区间修改操作。这时候,如果再用下传标记再向上更新的方式(PushDown&PushUp)来实现就会变得十分麻烦(因为要可持久嘛)。 那么,有没有一种实现线段区间修改的方式可以不用下传标记或向上更新呢?有,那就是标记永久 ...

Sun Aug 12 19:57:00 CST 2018 0 1607
线段的懒惰标记小笔记

线段可以进行区间更新,但是相比较于普通的线段单点更新和区间查询的功能来说,区间更新与其最大的不同就是在与区间更新需要加一个懒惰标记,来记下对懒惰标记的理解。 懒惰标记用来干什么? 解释: 理论上来说,如果[3, 9]这个区间被修改的话,那么下图中的所有绿色的结点的值都要得到重新计算 ...

Tue Jul 16 21:56:00 CST 2019 0 513
区间更新和懒惰标记线段

区间更新和懒惰标记线段 前言 普通版本的线段进行的是 单点更新 和 区间查询 . 对于带有 懒惰标记线段, 则可以进行 区间更新. 懒惰标记的意义 代表了这个结点的值已经被更新过了, 但是没有进行子树的结点值更改操作, 用lazy数组标记一下. 所以, 每次进行值的更新和查询 ...

Tue Oct 31 05:28:00 CST 2017 0 1072
浅谈线段离散

先了解一下离散的概念,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 就是他要求上限是10^9,但是可能真正用到的有用的点却只有几千或者几万而已,而如果你直接用上限来做的话,任何CPU都无法运行。 离散线段方面有着很大的用途: 比如数据过大时,建立线段无法开辟 ...

Tue Nov 28 03:26:00 CST 2017 0 1773
可持久线段(函数式线段) 【@Abandon】

♥可持久线段(函数式线段):   可持久数据结构(Persistent data structure)就是利用函数式编程的思想使其支持询问历史版本、同时充分利用它们之间的共同数据来减少时间和空间消耗。   所以这里讲的可持久线段也叫函数式线段(又叫主席……因为先 ...

Fri Sep 28 01:17:00 CST 2012 3 8690
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM