长链剖分优化DP
长链剖分
有一些美妙的性质
-
一个点跳到根最多经过\(\sqrt n\)条链
向上跳链,链长一定会增加,最坏是\(1,2,3,...,\sqrt n\)
-
所有长链的总链长相加为n(如说)
优化DP
如果dp中有一维和深度有关,就考虑优化,考虑用长儿子\(O(1)\)转移(一般是平移,考虑用指针),其他暴力转移
分析一下空间复杂度,因为一条长链公用一个数组,所以空间是链的总长n
时间复杂度,一条链只有在链顶暴力转移一次,单次复杂度是\(O(链长)\),所以总时间复杂度是\(O(n)\)
与之类似的DSU(可以维护dp有一维和子树大小有关)
标签:长链,剖分,链长,复杂度,sqrt,DP From: https://www.cnblogs.com/zhy114514/p/18028179