P1501 [国家集训队]Tree II
P1501 [国家集训队]Tree II(根号分治/CDQ分治)
考虑根号分治。
首先对于 \(k<\sqrt{n}\) 的,我们直接每次暴力 \(O(n)\) dp 即可。
然后对于 \(\sqrt{n} \leq k\) 的,我们发现答案的种类只有 \(\sqrt{n}\) 级别,而且答案显然具有单调性,所以我们考虑对于每一个点二分其最右边的和它答案相同的点。
这样做是 \(O(nlogn\sqrt{n})\) 的,调整块长,变成 \(O(n\sqrt{nlogn})\) 。
同时也可以 \(cdq\) 分治,因为答案具有单调性,而这样做的时间复杂度似乎是 \(O(nlogn\sqrt{n})\) 的。