
点分治
文章平均质量分 78
liuguangzhe1999
这个作者很懒,什么都没留下…
展开
-
BZOJ1095 [ZJOI2007]捉迷藏 动态点分治
每次修改一个点的黑白状态,询问树上最远黑点距离拿这个题做动态点分治模板题:(%%%PoPoQQQ大爷)点分治的过程是对树块找重心之后分成多个小树块,降低规模分别处理的过程,把链的信息收到其中“最高重心”上,从所有的重心处像分治中的不同子树索取到重心的链,就可以覆盖所有链的信息。动态点分治就像把序列分治变成线段树一样,在分治的架子上加了信息维护,实现树链信息维护与查询。需要什么?每个原创 2016-04-11 19:49:07 · 3783 阅读 · 0 评论 -
素数路径 Prime Distance On Tree 点分治+FFT
对于这个题,没有什么好用的数学性质,那么考虑统计所有长度的路径条数路径统计问题不难想到点分治之后统计每个点的路径条数即可假设之前子树到根的距离集合存为B,其中B[i]表示到根距离为i的有多少条当前子树为A,那么所有路径生成路径不拿发现符合A*B的卷积形式即而且对于一个分治块,路径长度不超过结点个数,因此规模可以降低到同阶每次对一个子树用FFT计算统计,可以写出如下代码:原创 2016-04-13 19:30:26 · 1542 阅读 · 0 评论 -
BZOJ2152 聪聪可可 点分治
此题明显可以点分治解决,对每层分治块递归子块,求出块内有多少距离%3=0,1,2的节点,与之前其他块的信息归并,即ans+=f[0]*g[0]+f[1]*g[2]+f[2]*g[1],再把g加到f上面去即可注意点分治求重心一定注意不要打错字母(打混x,y之类的)注意此题题意诡异,点对要*2+n(单点也算,反过来算两次)分母是n*n而不是n*(n-1)/2#include#in原创 2016-04-13 23:11:41 · 414 阅读 · 0 评论