线段树套线段树 二维线段树

二维线段树的维护用于pushdown操作不能实现(你会发现不断递归才能找到正确答案)

而对于pushup操作,似乎也不方便(待会可以试试)

这时引入一个标记永久化的概念,

格式如下:

mx数组:包含mx数组,tag数组

tag数组:包含mx数组,tag数组

我们在维护线段树时会使用一个max数组维护数量关系

而对于永久化而言,所有子区间同样适用,这样需要另开一个数组tag维护永久化的内容

刚开始用于tag数组只会更新内层出现错误,后来想想,标记永久化同样需要max子数组,因为

同一块永久化内容里面也可能会出现分歧,我们需要更新塔,避免出现错误

但是这样的更新对于tag内容是一种补丁,对于全局来讲似乎作用不大,因为有max数组了嘛

然而又因为我们需要用到tag数组,本来就需要弥补这个漏洞,这是刚性需求,所以tag里面也要有max数组。

本来我打算用正常的数组形式开四个不同数组的后来我发现维护起来相当麻烦,要分别写很多函数,代码复用

的效率很低,

最终“忍辱负重”还是使用了结构体的写法(后来发现越写越香)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值