标记永久化学习笔记

标记永久化是线段树的另一种写法,顾名思义,就是让懒标记永久作用于结点上不下传。

回顾一下下传标记的写法。对于一个结点,懒标记作用于其管辖的范围。换句话说,其所有子孙结点都会被懒标记作用恰好一次。在进入下一层时,我们先将懒标记作用于其儿子,然后再将懒标记和其儿子的懒标记合并。所以普通线段树需要满足结合律

既然懒标记是在进入下一层的时候才传的,那么之前肯定已经经过了所有能影响当前结点儿子的结点,即其所有祖先。所以我们不妨在查询的时候事先统计出当前懒标记对查询区间的影响。这就要求操作满足交换律,因为这样无法得知操作的先后顺序

实现的时候有一个细节,如果贡献跟区间有关,那么最好保证修改或查询的区间被当前结点所管辖的区间包含。这样我们才能方便地统计贡献,否则还要对左右边界取 minmax,稍显麻烦。

posted @   御坂夏铃  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示