长链剖分优化 dp
前言
- 对于一类树上
问题,有一个维度有关 深度 的时候,也许可以用长链剖分优化
长链剖分优化流程
-
首先以向下的最大深度为基础对于每个点求出重儿子
-
在
转移的时候,对于重儿子因为有一个维度是深度,那么直接利用指针 继承自己的重儿子的信息 -
对于轻儿子就遍历一遍最大深度暴力合并
的信息 -
可以发现对于每一条链都仅会在自己的链顶端被
暴力合并一次,并且记录的信息也是 ,所以空间和时间的复杂度都可以优化到 -
不过长链剖分优化的题目难点似乎应该也不会在长链剖分上
例题
给定一张无向图,求有多少个点对满足点对之间的必经点的个数为
,
-
首先用圆方树转成树上问题,那么就是问树上两个点之间圆点的个数为
的点对个数 -
虽然不是严格的深度,但是第二维可以看成一个有关深度的问题,所以显然可以用长链剖分优化到
-
一些废话:不过我是先打完小常数 dsu (
虽然带了一支)觉得也许可以过后突然想到长链剖分可以直接优化到 ,但是富贵险中求(这个确实是正解),然而不想改了,不过 dsu 真的过了... 是数据太水了还是机子太快了,我自己当时手搓的大数据一般都是在 1.9s 左右(崩溃的边缘徘徊),不知道是否有人淀粉质搞过去了,翻了一下代码好像真的有?数据过水....(应该卡掉大常数 log 放过我的小常数)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探