先列一下我印象比较深的树分治的题目:
POJ1741
聪聪与可可 BZOJ2152
HDU4812 逆元
17多校有道树形DP 可以用树分治过
HDU5977
HDU6035(非标算)
BZOJ3697 采药人的路径
以上基本是点分治的题目。边分治遇到的比较少,比较有代表性的是SPOJ的一题。
在我看来,点分治主要有以下两种思路:
1.运用容斥的思想,先把这个节点getdeep的时候搞出来的东西不管是否经过这个点(即不在同一子树)全部都计算,然后在减去子树中(即在同一子树)的这些答案
这样减剩下就是经过这个点的答案了(参考 树上的点对以及聪聪可可以及吕欣大爷的c题) POJ1741和HDU5977都是这样的思想。
2.类似动态点分治的想法,我们直接对于每个点的子树的一个一个的做(组合或更新);比如说经常用一些堆,单调队列(貌似还有平衡树)这些东西来实现子树贡献合并(参考所有动态点分治) HDU6035就是这样的思想。