点分治
文章平均质量分 78
liuguangzhe1999
这个作者很懒,什么都没留下…
展开
-
BZOJ1095 [ZJOI2007]捉迷藏 动态点分治
每次修改一个点的黑白状态,询问树上最远黑点距离 拿这个题做动态点分治模板题:(%%%PoPoQQQ大爷) 点分治的过程是对树块找重心之后分成多个小树块,降低规模分别处理的过程,把链的信息收到其中“最高重心”上,从所有的重心处像分治中的不同子树索取到重心的链,就可以覆盖所有链的信息。动态点分治就像把序列分治变成线段树一样,在分治的架子上加了信息维护,实现树链信息维护与查询。 需要什么? 每个原创 2016-04-11 19:49:07 · 3729 阅读 · 0 评论 -
素数路径 Prime Distance On Tree 点分治+FFT
对于这个题,没有什么好用的数学性质,那么考虑统计所有长度的路径条数 路径统计问题不难想到点分治之后统计每个点的路径条数即可 假设之前子树到根的距离集合存为B,其中B[i]表示到根距离为i的有多少条 当前子树为A,那么所有路径生成路径不拿发现符合A*B的卷积形式 即 而且对于一个分治块,路径长度不超过结点个数,因此规模可以降低到同阶 每次对一个子树用FFT计算统计,可以写出如下代码:原创 2016-04-13 19:30:26 · 1480 阅读 · 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 · 375 阅读 · 0 评论