随笔分类 -  算法 - CDQ分治

[BZOJ4237]稻草人:CDQ分治+单调栈
摘要:分析 按$y$排序后CDQ分治,可以发现每个点可以影响的是$x$坐标的一段区间,可以使用扫描线+单调栈,在单调栈上二分即可解决,时间复杂度$O(n \log^2 n)$。 通过归并排序可以显著减小常数。 代码 阅读全文

posted @ 2019-02-14 12:09 ErkkiErkko 阅读(172) 评论(0) 推荐(0)

[BZOJ2225][SPOJ2371]LIS2 - Another Longest Increasing Subsequence Problem:CDQ分治+树状数组+DP
摘要:分析 这回试了一下三级标题,不知道效果怎么样? 回到正题,二维最长上升子序列......嗯,~~我会树套树~~。 考虑$CDQ$分治,算法流程: 1. 先递归进入左子区间。 2. 将左,右子区间按$x$排序。 3. 归并处理左右子区间,在过程中使用树状数组加速$DP$。 4. 还原右区间,清空树状数 阅读全文

posted @ 2018-11-27 00:40 ErkkiErkko 阅读(166) 评论(0) 推荐(0)