随笔分类 -  D-树-点分治

摘要:Link: P2664 传送门 Solution: 一道非常不错的计算贡献的题目 此类计算树上所有点对间结果的题目首先考虑点分治,同时一般都是对每种颜色计算贡献 那么对于每层点分治,需要计算其它点对分治中心的贡献和经过分支中心的路径对其它每个点的贡献 考虑颜色$k$,如果一个颜色为$k$的节点$v$ 阅读全文
posted @ 2018-08-26 19:29 NewErA 阅读(749) 评论(0) 推荐(0)
摘要:Link: P3806 传送门 Solution: 询问树上是否存在两点间的距离为$k$,共有$m$次询问($m\le 100,k\le 1e7$) 预处理出所有距离的可能性再$O(1)$出解的复杂度为$O(n^2*log(n))$,明显TLE(但好像并不会) 而如果直接在线处理要分治$m$次,找$ 阅读全文
posted @ 2018-07-13 09:12 NewErA 阅读(218) 评论(0) 推荐(0)
摘要:Link: POJ 1741 传送门 Solution: 此题的难点在于点分治上的统计 如果依然采取每棵子树的结果与之前所有子树的结果合并的方式会比较麻烦 同时复杂度可能超过$O(n*log(n))$的限制 其实可以用一个简单的容斥来在$O(n*log(n))$统计结果: 先将所有点到重心的距离排序 阅读全文
posted @ 2018-07-13 08:43 NewErA 阅读(122) 评论(0) 推荐(0)
摘要:Link: BZOJ 2152 传送门 Solution: 直接上点分治就行了(其实也可以树形$dp$) 其中对于穿过重心的边的统计类似于树形$dp$的计算方式: 将当前子树中模3分别为0/1/2的边与之前所有子树产生的边进行组合 Code: 阅读全文
posted @ 2018-07-13 07:12 NewErA 阅读(118) 评论(0) 推荐(0)