首页 > 其他分享 >97th 2024/8/26 树形数据结构小结

97th 2024/8/26 树形数据结构小结

时间:2024-09-29 21:47:29浏览次数:1  
标签:26 标记 97th 取反 2024 区间 操作 维护 考虑

精锐

线段树\(\big/\)平衡树综合题目五步取首

1、每个节点需要维护的信息有?

可从题目要求的目标或经推导后得到的要求的目标得到

如对于括号序列这一题,将"("转化为-1,")"转化为1后,要求的答案就变成了最大前缀和和最小后缀和

然后就变成了平衡树板题(区间赋值,反转,翻转)

2、需要的标记有?

一般的标记有:区间赋值,区间翻转,特殊标记,从要维护的信息可以得到

3、如何下传标记?

这里要考虑标记更新的优先级:如取反>覆盖,在对区间进行取反时要将覆盖标记也取反

平衡树下传标记与线段树类似

4、如何整体修改区间?

在对应子树根上打标记,因为可以通过下传标记进行区间赋值

5、如何合并区间?

考虑如何对该区间需维护的值进行更新即可

经验谈

1、设置标记时,可从要维护的量进行步步分析,如想维护某个量,就要想这个量如何从子区间合并过来,再想如果要用别的量辅助区间量的维护,那么那个辅助量该如何维护,以此类推,直到封闭

2、设置标记用于区间修改时,只用考虑该操作是否符合结合律,\(pushdown\)是具有即时性的,每次打标记前都会对当前标记进行下传,因而标记的操作先后顺序是按操作发生的时间进行排序的,新的操作总是衔接在旧操作之后,所以像区间历史最值这样的,完全可行

3、对于区间历史最值问题,需要酌情考虑每一个标记具体的作用、下传时间以及维护时的先后顺序,不然很容易挂,可以从“若一个\(fath\)正在向儿子\(pushdown\),此时\(fath\)中的标记一定是在儿子的标记之后打上去的,每一个\(pushdown\)本质上是在儿子的操作序列后加上一个操作序列”进行考虑,对每一个节点进行操作时都要考虑这样是否对下传标记时会造成影响,所以思考这一类问题时,思路一定要清晰,稍微乱起来就会很恶心,可以考虑将各个标记的更新分成几个函数打出来,这里可以参考经典老题CPU监控题解做法

标签:26,标记,97th,取反,2024,区间,操作,维护,考虑
From: https://www.cnblogs.com/tlz-place/p/18440819

相关文章

  • 96th 2024/8/23 FWT总结
    概览将对数列的讨论带到了二进制上,用于解决跟操作二进制位的符号有关的题目如\[\sum_{i|j=k}a[i]·b[j]\]FFT的大概流程是将多项式化为点值表达式,然后通过点值表达式\(O(n)\)复杂度的合并降低复杂度上限,最后将点值表达式化回多项式第一步和第三步的复杂度是\(O(n\logn)\)的,......
  • 95th 2024/8/20 模拟赛总结59
    本次爆炸场,也是习惯了赛时:冲T3正解,但是pushdown......OUT!真的得细心,复制第一句时忘记修改第二句了,离谱的是小样例全过了还有pushdown的位置,应注意,防止在叶子节点爆4N空间,比赛时一开始打出了假的T3算法,也是因为当时想了想直接就开打了,没多过脑子,应该多想几下,不然没RP又打假......
  • 99th 2024/9/4 CDQ分治小结
    概括轻新小思路用于处理点对关系题在能将点对分段处理(如下)的题目中有奇效试想,现在要处理部分点对,其范围为\(l\in[L,R],r\in[L,R]\)其位置不确定,但是我们可以考虑将其分为三个板块分别作出的总贡献即分为\(l\in[L,mid],r\in[mid+1,R]\)\(l\in[L,mid],r\in[L,mid]\)\(l......
  • 98th 2024/9/4 VP-ARC183小结
    洪文局A很快打出来了,但还是不够快因为要构造出最中间的那个序列,所以很显然可以直接构造因为要最中间,所以试一试就可以直接试出\(n\)为偶数的样式,然后\(n\)为奇数的可以通过把最中间的数字全部放到最前面,然后在构造二实现这题简单就简单在做它的办法太多了,没思路打个暴力也能找......
  • 2024 Noip 做题记录(三)
    \(\text{ByDaiRuiChen007}\)Round#9-2024.9.23A.[P10849]LevelProblemLink题目大意给定若干人和空位,等级\(1\simn\),其中等级为\(i\)的人和空位分别有\(b_i,a_i\)个,给每个人匹配一个位置,如果一个等级为\(i\)的人匹配了一个等级为\(j\)的位置,会产生\(\ma......
  • 大模型学习路线:这会是你见过最全最新的大模型学习路线【2024最新】
    大模型学习路线建议先从主流的Llama开始,然后选用中文的Qwen/Baichuan/ChatGLM,先快速上手体验prompt工程,然后再学习其架构,跑微调脚本如果要深入学习,建议再按以下步骤,从更基础的GPT和BERT学起,因为底层是相通的,而且实际落地到一个系统中,应该也是大模型结合小模型(大模型在做判......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的贸易行业crm系统(源码+lw+部署文档+讲解
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的智慧图书管理系统(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的线上辅导班系统的开发与设计(源码+lw+部
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的智能无人仓库管理(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......