[蓝桥杯学习] 树链剖分

定义

将树分割成若干条链,以维护树上的信息,若无特殊需求,一般是重链剖分。

重链剖分

如何重链剖分

两个dfs

第一个dfs是预处理各个结点的基本信息,第二个dfs是利用信息进行剖分(dfs序)

操作步骤

第一次dfs

  1. 更新当前结点信息(子树个数、父结点信息、深度)
  2. 对子结点进行dfs
  3. 子结点dfs之后,把子结点的子树个数加到父结点,更新重儿子。
第二次dfs

因为dfs序连续的值是一条链,所以,我们需要让树在进行dfs时,优先对重儿子进行dfs,之后再对其它轻儿子进行dfs

重链剖分的应用

将剖分的重链放在线段数组或者树状数组上,然后在这个数据结构上进行维护。

对某条链上的节点进行更新

用数据结构对节点信息进行维护,进行区间查询,区间更新。

对某节点子树进行更新/查询

由dfs序可知,某节点的入序和出序之间的连续数就是该节点的子树。

查询两节点的最近公共祖先LCA

操作步骤:

  1. 当两节点不在同一条链上时,选择深度更浅的结点,跳到父链(链首的父结点)
  2. 当两节点在同一条链上时,深度更浅的点就是最近公共祖先LCA

查询、修改两节点之间路径的信息

主体还是寻找LCA,就是如果跳到父链(或是其它点),把x到它首结点(其它点)之间结点信息进行更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/324694.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在centos上安装WordPress 及创建配置文件无反应的解决方案

一、安装Apache服务 1.直接在命令行中输入以下命令即可,顺便安装编译组件: yum install -y httpd yum install -y httpd-devel2.启动Apache服务和设置Apache自启: 1 systemctl start httpd 2 systemctl enable httpd 3.添加一个测试页面,…

汽车电子学习总结

国内的主要有比亚迪、联合汽车电子(联电)、麦格米特、上海电驱动;国外的主要有欧美系的博世、麦格纳、大陆、博格华纳;日系的电装、电产等公司。

KK集团高管变更:陈世欣任总经理,涉无证放贷遭关注,还曾被处罚

近日,KK集团关联公司广东快客电子商务有限公司(下称“KK集团”)发生工商变更,其中郭惠波不再担任该公司总经理一职,由陈世欣接任。而在早前,陈世欣曾于2020年取代吴悦宁担任总经理职务,2021年7月…

Local server not started, start with 报错python -m weditor

一、python -m weditor 如图报错 Local server not started, start with 报错 二、解决方案 右上角选择新的无痕窗口下,然后打开 http://localhost:17310/ 即可

分布式(7)

目录 31.基于Zookeeper如何实现分布式锁? 32.什么是ACID? 33.什么是分布式的XA协议? 34.什么是2PC? 35.什么是3PC? 31.基于Zookeeper如何实现分布式锁? 顺序节点 创建一个用于发号的节点“/test/lock…

73.乐理基础-打拍子-还原号、临时变音记号在简谱中的规则

上一个内容:72.乐理基础-打拍子-加延音线的节奏型-CSDN博客 下图中1-13,就是四几拍中所有可能出现的节奏型,以及它们的组合方式,需要练习,可以买一本视唱书去练习,搜乐谱练习,自己写节奏型根据…

【物联网】手把手完整实现STM32+ESP8266+MQTT+阿里云+APP应用——第3节-云产品流转配置

🌟博主领域:嵌入式领域&人工智能&软件开发 本节目标:本节目标是进行云产品流转配置为后面实际的手机APP的接入做铺垫。云产品流转配置的目的是为了后面能够让后面实际做出来的手机APP可以控制STM32/MCU,STM32/MCU可以将数…

CentOS 多节点一键免密登录

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

UE4.27_PIE/SIE

UE4.27_PIE/SIE 1. 疑问: 不明白什么是PIE/SIE? 不知道快捷键? 2. PIE/SIE: play in editor/simulate in editor 3. 快捷键: F8: 运行时possess&eject切换 4. 运行操作效果: PIE&SIE

书生·浦语大模型全链路开源体系(陈恺|上海人工智能实验室 青年科学家)-听课笔记

大模型重要性 大模型确实已成为发展通用人工智能(AGI)的重要途径。它们通过整合和处理大量数据,学习语言、图像、声音等多种模式的表示,以此来模拟人类的学习和思维方式。通过不断地学习和优化,这些模型能够在各种任…

JAVAEE初阶相关内容第二十弹--HTTP协议【续集】

写在前:在前一篇博客中我们初步掌握了HTTP(超文本传输协议)的相关知识【点击跳转】,认识了HYYP协议的工作过程,掌握抓包工具Fiddler的使用。在“方法”中重点需要理解“GET”方法与“POST”方法的格式与内容,并了解了请求“报头”…

基于引力搜索算法优化的Elman神经网络数据预测 - 附代码

基于引力搜索算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于引力搜索算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于引力搜索优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…