摘要:
点分治第二题,分治过程写的比较熟练了,但搞答案的时候还是想了好久,写了好久.......主要解释一下求g的那块吧:首先dep[i]表示rot的第i个儿子的子树里黑点最多的路径的的黑点数。黑点限制是K,我们可以求出rot的每一个儿子i黑点数为j的最大长度g[i,j],然后每次求出一个j1+j2<=K,且g[i1,j1]+g[i2,j2]最大的。如果我们枚举i2,那么只需要求出一个可以和i2配并且最长的i1就行了。这个可以用个什么数据结构维护,也可以“暴力”。由于顺序是对答案没有影响的,那么我们按照dep升序排序,然后按照这个顺序计算,mg[j]表示前i个点的g[j]的最大值,如果维护好mg 阅读全文