听课记录 210220【分治,树分治,CDQ分治】

sszx dzy 20%

分治

分而治之

归并排序

分治思想的最简单体现,将具有特征的问题分解成子问题,子问题可用同样方法(即递归)处理。对于子问题之间的联系,特殊处理。

求逆序对

与归并排序密不可分,例:

1 2 3 4   1 2 3 4
1 2 3 4   5 6 7 8

主定理

求递归式的时间复杂度

平面上的分治

在平面上按x坐标排序分治,再在归并排序过程中考虑y坐标。

练习题

CF480E

树分治

求树上距离不大于k的点对个数,即路径。树分治就是解决树上路径问题的高效算法。

分为点分治和边分治

练习题

SPOJ FTOUR2(求选择不超过k个黑点的路径最大权值):点分治

BZOJ2152(求2个点之间路径权值和是3的倍数的概率):

BZOJ1758():分数规划+长链剖分

CDQ分治

CDQ分治需要题目支持离线算法,且修改操作互不影响

例题:陌上花开(BZOJ3262)

Des:求比每个元素的三种属性都小的元素个数
Sol:CDQ分治

练习题

BZOJ1176(维护矩阵,支持单点修改和范围查询):

BZOJ3295,CQOI2011(动态逆序对:CDQ分治经典例题,删除元素的同时求逆序对个数):

BZOJ2716/2648(SJY摆棋子:在棋盘上放下黑棋和白棋,对于白棋输出这个白棋和离它最近的黑棋之间的距离,此处的近和距离指曼哈顿距离):二维偏序||kdtree

总结

题单:https://www.luogu.com.cn/training/57283

原文地址:https://www.cnblogs.com/huaruoji/p/14425559.html