长链剖分总结
1|0长链剖分总结
长链剖分,顾名思义,就是按照链长(即深度)把树剖成若干条链。具体的,定义每个点的儿子中,子树深度最大的点是重儿子,不断跳重儿子形成的链也就是长链。
长链剖分的性质:
1.从一个点向上跳长链的次数不会超过
证明:考虑每跳到一条新的链上,这条链一定比前一条链长,而最坏情况下,才有长链长度分别为
2.任意一个点的
证明:如果
1|1长链剖分的应用
1.O(nlogn)−O(1)求树上k级祖先
根据刚刚的性质,我们令
例题:
2.优化和深度有关的树形DP
思路类似
例题:
题意:给定一棵有
思路:考虑一个
题意:求树上选择两两距离相等的3个点的方案数。
思路:先考虑朴素DP。设
可以发现,
题意:多次询问,给定
思路:这道题有114514种做法,之前用的是
首先考虑
然后就是
__EOF__

本文链接:https://www.cnblogs.com/Xttttr/p/17262667.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】