当前位置: 首页 > news >正文

一种用于求所有儿子贡献的给树重标号的方式

知识介绍

用途:可以做到子树,重链,轻儿子的编号连续,进而使用序列数据结构进行相关信息维护。
做法:递归到当前点u时,先给重儿子标号,再递归入重儿子,递归回溯后一次性给所有轻儿子标号,再分别递归轻儿子。
性质:

  • 一个点u子树内的编号连续。
  • 对于一条重链,除了链头以外,其他点的编号自顶向下连续。
  • 对于一个点,其轻儿子的编号为一个区间。

这意味着,其所能维护的信息应当在几乎所有情况下大于重链剖分,线段树能进行的区间操作可以在链,子树,一个点的所有儿子上进行。

适配场景

目前想到的有两个,圆方树和ddp,优点是可以维护的信息不需要可减性。

圆方树应用

例题:CF487E Tourists。
这题的圆方树建立是广为人知的。我们有了这个科技之后可以不像别的题解一样给每个方点都维护一个multiset,而是只需要在某个圆点修改后,重新查询其方点父亲的所有轻儿子+重儿子+父亲的贡献并相应修改方点贡献。

ddp应用

是通用的。由于正好ddp需要用到一个点所有轻儿子的贡献之和,我们令 \(h_u\) 表示点 \(u\) 的轻儿子贡献之和,\(g_u\) 只有在点 \(u\) 是重链链头时有意义,表示这个点的子树dp完了之后的dp值(一个向量)。
当对一个点 \(p\) 进行矩阵修改之后,跳到链头,计算并修改链头的 \(g_{top}\),然后计算 \(top\) 的父亲 \(r\) 的新 \(h_r\),只需查询 \(r\) 的所有轻儿子的 \(g_x\) 之积即可。

不需要信息的可减性是一大亮点,但目前没有发现复杂度更优的情况,甚至在ddp中比GBST的单log劣。或许是鸡肋一只吧。

参考博客:https://www.cnblogs.com/Charlie-Vinnie/p/18075433

http://www.jsqmd.com/news/34672/

相关文章:

  • 2025 年 11 月铝材厂家推荐排行榜,1060/1070导电铝排,6061/6063合金铝排,6061/6063/6082/2A12/5A06/7075铝棒,5083/2A12铝板公司推荐
  • 2025 年 11 月 0.6/1kV 电线电缆厂家推荐排行榜,低压电力电缆,阻燃电缆,耐火电缆,控制电缆公司精选
  • facefusion解除限制
  • 2025 年 11 月管道泵厂家推荐排行榜,新型管道泵,节能管道泵,低噪声管道泵,防爆管道泵,高压管道泵,防腐管道泵,SF/SFB/WF屋顶管道泵公司推荐
  • 关于Microsoft Power Automate-操作Excel相关的操作时报错-使用-taskkill-命令-结束进程的方式-解决
  • java面试八股 redis篇
  • 学习图片数据如何处理为MindSpore自定义数据集
  • Python + nano-banana API 批量给图片添加文字
  • 「亲手画出动态数学」:让数学可视化触手可及的Manim入门课
  • 深入解析:个人用云计算学习笔记 --19 (MariaDB服务器)
  • 详细介绍:RabbitMQ如何构建集群?
  • Vibe Coding - 免费使用gpt-5、grok-code-fast-1进行氛围编程
  • AI大模型应用开发技术架构和技术选型 - 努力-
  • AI元人文:当一个系统说“我就是一个人”
  • vue路由基本结构
  • 申请软著,怎么快速整理软件源代码
  • 小马算力 11.1
  • pip install weditor安装出现报错
  • AI学习机:智商税还是真有用?2025年11月全面解析与选购指南
  • 困哉。困哉。别困了!总结
  • 解决GitHub大文件推送错误:彻底清理PDB资料并配置.gitignore
  • 经典欧拉角与泰特布莱恩角
  • 如何提高 SaaS 产品的成功率?
  • Apifox接口测试工具简介 - 努力-
  • 详细介绍:识别含地理信息的 PDF作为底图在 Mapbox GL项目中使用
  • Markdown使用
  • 大家好
  • Windows 10 家庭版启用组策略编辑器
  • MySQL 基础架构(一):SQL语句的执行之旅
  • 顺序表练习题