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+depv−2×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 中最浅的点
然后直接拿个线段树维护即可文章来源:https://www.toymoban.com/news/detail-681894.html
总结:文章来源地址https://www.toymoban.com/news/detail-681894.html
- 动态维护直径
- 动态维护树上路径
- 涉及LCA点转欧拉环游序
- 对欧拉环游序用数据结构维护
到了这里,关于动态维护直径 || 动态维护树上路径 || 涉及LCA点转序列 || 对欧拉环游序用数据结构维护:1192B的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!