Origin
在某一场GDOI模拟赛上,一道好好的点分治题目,本蒟蒻强行大力优化暴力碾了过去。这题中我算法的瓶颈不在时间复杂度,而在于空间复杂度。为了解决这个问题,我想到了一种使用重链剖分来优化空间复杂度的方法。
Problem
首先我们要明确一下这种方法的适用范围:
一个点对该点父亲的贡献,可以直接利用该点已知的信息以及该点父亲已有的信息计算得,不需要依赖该点的兄弟或者其它点的信息。
比如我们现在要讨论的这一道题目:
给定一棵 n 个节点的树,每个节点有一个颜色(颜色编号是在
这个显然如果我们处理出每个点为顶点然后颜色集合二进制状态为