树分治&树链剖分相关题目讨论

Posted zhouyis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树分治&树链剖分相关题目讨论相关的知识,希望对你有一定的参考价值。

预备知识

树分治,树链剖分

 

poj1741

•一棵有n个节点的树,节点之间的边有长度。方方方想知道,有多少个点对距离不超过m

题解

点分治模板题。详见我早上写的http://www.cnblogs.com/chouti/p/5836926.html

 

OrzFang Ⅸ

•有一棵n个点,边长为1的树,他要在树上选择一个大小为m的点集,使得这m个点两两距离相等。

方方方想知道这么做的方案数对998244353取模后的结果。

题解

首先肯定有一个中心点,使得这个点到m个点距离相等

那么枚举这个中心点,枚举距离,注意一个子树最多贡献一个点在点集,类似背包的统计方式合并一下。复杂度目测是大概O(n^2$\\sqrt{n}$)

 

 

OrzFang X

•方方方有一棵n个点的树,每个点点权初始为0。你需要维护m个操作,每个操作为路径加,子树加,路径求和或子树求和。

题解

这题树剖肯定能做,做法类似NOI2015D1T2软件包啥的

每条重链用个线段树

子树修改视作修改一段编号连续的重链‘

路径修改就是修改和路径相交的重链

事实上,子树修改-路径求和这种可以不用树剖,对dfs序建线段树可以更好的解决

 

 

OrzFang XI

•方方方有一棵n个点,边长为1的树。他想知道,有多少个点对距离为质数。

题解

codechef PRIMEDST

类似poj1741的点分治,合并递归的结果的时候套上FFT

以上是关于树分治&树链剖分相关题目讨论的主要内容,如果未能解决你的问题,请参考以下文章

树链剖分学习&BZOJ1036

LibreOJ #139 树链剖分 [树链剖分,线段树]

Aragorn's Story 树链剖分+线段树 && 树链剖分+树状数组

P4556 [Vani有约会]雨天的尾巴 树链剖分 线段树合并

Codeforces 343D Water Tree & 树链剖分教程

bzoj 4372: 烁烁的游戏 动态点分治_树链剖分_线段树