码迷,mamicode.com
首页 > 其他好文 > 详细

【总结】静态点分治

时间:2018-04-26 01:33:35      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:art   而不是   速度   而且   比较   递归   方便   https   最大的   

这是一篇关于静态点分治的总结

点分治是什么?

就是一种统计答案的方式,用在树上
想要从头开始学点分治的话,可以点这里
点分治的标志:树上处理点对问题大部分用点分(当然还要复杂度允许)
对于一个树上点对问题,一个点只会有两种情况,一种是选,一种是不选
那么点分治就是按照这种思路去完成答案的统计,然后每次都找的是重心(size最大的子树的size最小的点),保证复杂度

一些可能有用的东西

点分治并不模板,而且还很思维。分治好后,统计答案还是需要思考的,而不是万能板子,所以没有捷径
这里只是一些去重的方法

  • 如果要统计的东西是一个整体的答案,而不针对于树上的每一个点,并且方便去重(感性理解),那么对于去重就直接在solve中枚举每一个子树去重就行了
  • 统计的如果是整体,但不方便去重,那么每个递归的solve,都是一遍维护,一遍算答案,维护的是当前枚举的子树之前的(或左边的)子树的贡献,然后对于当前子树算它与之前的子树的答案,这样就可以避免去重了,因为加的贡献一定不是同一个子树的
  • 如果答案需要针对每一个点,那么就一次递归中,就先把所有的子树答案先统计好,然后对于每一个子树,先把它的贡献从统计里减去,然后再算这个子树得到答案,然后再把这个子树的贡献加回去

一些题目

题目很少,做得不多

就只有4道了

从未结束

静态点分治弄完了 ????
接下来做题速度会慢下来,但每道题一定要满收获!!!!

【总结】静态点分治

标签:art   而不是   速度   而且   比较   递归   方便   https   最大的   

原文地址:https://www.cnblogs.com/hongyj/p/8947542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!