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})\) 的。

posted @ 2021-04-16 15:54  __Anchor  阅读(43)  评论(0编辑  收藏  举报