语言 题解

语言 题解

本题其实没有什么好说的,主要是提供一种强大的,神秘的,诡异的,跑得飞快的,逆天的,唐诗的双 log 做法

首先考虑将答案分类,分成跨过这个语言的 lca 的和没跨过的

对于没跨过的,可以发现就是对于每个点,求能扩展到的深度最低的节点,这个直接暴力做就是 O(n) 的,所以说我们直接考虑第二种情况

发现可以对每个 lca 分别做,很容易发现一个点能配对的有和自己配对的一条链,还有所有子树里的链的并集,发现可以直接建出来虚树之后链推平,线段树合并

现在我们就做完了,复杂度 O(nlog2n),但是有一个 log 是树剖的,另一个可以压位优化,整体常数极小,即使不使用压位优化也能轻取洛谷最优解

对于正解,发现是维护子树虚数大小,支持删除一个点,合并一堆点,这个直接dfn相邻两个点距离加和做完了,线段树维护即可

posted @   wang54321  阅读(29)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示