动态维护直径 || 动态维护树上路径 || 涉及LCA点转序列 || 对欧拉环游序用数据结构维护:1192B

news/2025/1/11 17:54:24/

https://www.luogu.com.cn/problem/CF1192B

对于直径的求法,常用dp或两次dfs,但如果要动态维护似乎都不太方面,那么可以维护树上路径最大值。

树上路径为:

d e p u + d e p v − 2 × d e p l c a ( u , v ) dep_u+dep_v-2\times dep_{lca(u,v)} depu+depv2×deplca(u,v)

为方便求 l c a ( u , v ) lca(u,v) lca(u,v),可以直接化为树上欧拉环游序,任意 u , v u,v u,v 中必有 l c a ( u , v ) lca(u,v) lca(u,v) ,而且 l c a ( u , v ) lca(u,v) lca(u,v) 必然为任意 u , v u,v u,v 中最浅的点

在这里插入图片描述
然后直接拿个线段树维护即可

总结:

  1. 动态维护直径
  2. 动态维护树上路径
  3. 涉及LCA点转欧拉环游序
  4. 对欧拉环游序用数据结构维护

http://www.ppmy.cn/news/1070550.html

相关文章

无涯教程-Android - Intents/Filters

Android Intent 是要执行的操作的抽象描述。它可以与 startActivity 一起启动Activity,将 broadcastIntent 发送给任何BroadcastReceiver组件,并与 startService(Intent)或 bindService(Intent,ServiceConnection,int)与后台服务进…

阿里巴巴FastJson包的使用心得

阿里巴巴FastJson包的使用心得 1.FastJson简介2.FastJson特性3.引入FastJson4.FastJson中的一些对象(1)JSONObject(2)JSONArray(3)SerializeWriter 4.FastJson中的一些操作(1) 将Jav…

如何拼接两个视频在一起?

如何拼接两个视频在一起?在度过一个美好周末的时候,我和朋友一起拍摄了两组视频,准备将两个视频合并成一个并发布到朋友圈。这个想法非常棒,但是我在第一步就遇到了麻烦:如何将这两个视频拼接在一起?这听起…

【MySQL】组合查询

目录 一、组合查询 1.创建组合查询 2.union规则 3.包含或取消重复的行 4.对组合查询结果排序 一、组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查…

GO语言圣经 第二章习题

练习2.1 向tempconv包添加类型、常量和函数用来处理Kelvin绝对温度的转换,Kelvin 绝对零度是−273.15C,Kelvin绝对温度1K和摄氏度1C的单位间隔是一样的。 conv.go package tempconv// CToF converts a Celsius temperature to Fahrenheit. func CToF(c …

【Unity db】sqlite

背景 最近使用unity,需要用到sqlite,记录下使用过程 需要的动态库 Mono.Data.Sqlite.dll,这个文件下载参考下面链接 SqliteConnection的Close和Open 连接的概念: 在数据库编程中,连接是一个重要的概念&#xff0c…

芯片技术的崭新时代:探索未来的可能性

引言 芯片作为现代科技领域的核心,扮演着无可替代的角色。从智能手机到数据中心,从医疗设备到智能家居,芯片技术已经深刻地改变了我们的生活。然而,随着技术的不断发展,芯片行业也在经历着一场前所未有的变革。本文将…

【pyqt5界面化开发-3】工具图标设置

一、目标1:添加icon图标 需要模块:from PyQt5.QtGui import QIcon w.setWindowIcon(QIcon(C:\\img_path\\test.png)) 代码(自己加上自己的图标路劲): import sysfrom PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QApplication,…