树分治专题

先列一下我印象比较深的树分治的题目:

POJ1741

聪聪与可可 BZOJ2152

HDU4812 逆元

17多校有道树形DP 可以用树分治过

HDU5977

HDU6035(非标算)

BZOJ3697 采药人的路径

 

以上基本是点分治的题目。边分治遇到的比较少,比较有代表性的是SPOJ的一题。

 

在我看来,点分治主要有以下两种思路:

1.运用容斥的思想,先把这个节点getdeep的时候搞出来的东西不管是否经过这个点(即不在同一子树)全部都计算,然后在减去子树中(即在同一子树)的这些答案

这样减剩下就是经过这个点的答案了(参考 树上的点对以及聪聪可可以及吕欣大爷的c题)  POJ1741和HDU5977都是这样的思想。

2.类似动态点分治的想法,我们直接对于每个点的子树的一个一个的做(组合或更新);比如说经常用一些堆,单调队列(貌似还有平衡树)这些东西来实现子树贡献合并(参考所有动态点分治) HDU6035就是这样的思想。

 

posted @ 2018-08-07 18:36  caozy623  阅读(100)  评论(0编辑  收藏  举报