点分治
HT008_123
家人们点点关注叭
展开
-
[POJ 1741] Tree
题目描述:给你一颗带权树,给出参数K,求有多少个点对 (X,Y)之间的距离 <=k题目分析:裸的点分治算法 我们要求的是一些合法的路径,这些路径我们可以分为两种:过某个点和不过某个点。这样我们就可以分别来求这两种情况。 如果我们已经知道了此时所有点到根的距离d[i],d[x] + d[y] <= k的(x,y)对数就是结果,这个可以通过排序之后O(n)的复杂度求出。然后...原创 2018-02-27 11:33:31 · 171 阅读 · 0 评论 -
[Luogu P3806] 点分治 模板
题目描述:给出一颗含N个点的数。 Q个询问,每个询问一个K,问树中是否存在一对点的距离==K题目分析:这道题目可以看为POJ那道的简化版? 然而用那种方法,对于每个K都查一次,不T才怪嘞. 注意到 K<=10000000. 那我们可以用点分治的办法跑一边树,求出所有点对的路径长度,扔进一个桶里即可做到O(1)查询.题目链接:Luogu 3806AC 代码:...原创 2018-02-27 15:19:35 · 286 阅读 · 0 评论 -
[Luogu P2634 国家集训队] 聪聪可可
题目描述:给出含N个点的树,求任意两个点距离为3的倍数的概率.题目分析:emmmm. 本以为这道题目直接套用上题的做法就可以A了. 然而数据范围大了一倍.直接枚举的下场就是T成了SB 其实完全不用去对处理出来的数 N^2,枚举. 考虑 长度为 3 倍数的路径有 X条 %3为1的路径个数为 Y 条 %3余2 的路径个数为 Z 条 那么答案就是 X^2 + Y*Z*2 不要忘了...原创 2018-02-27 16:10:25 · 227 阅读 · 0 评论 -
[CodeForces 161D] Distance in Tree
题目描述:给一个N个点的树,两点距离为1,求有多少个点对 的距离为 K(不重复统计)题目分析:点分治的题目每个都要变形!!! 本来套用了上上一题的做法,人家 N<=50000 ,又T成了SB 看了看题解,人家说是树形DP,mmp 说好的点分治呢!!! 其实仔细想想,我们开两个数组进行动态统计就行了 QwQ题目链接:Luogu 的 CF 题库AC code:...原创 2018-02-27 19:43:31 · 283 阅读 · 0 评论 -
[ZJOI 2007] 捉迷藏
题目描述:给出一棵树,每个点有颜色,初始颜色为黑。 C:U 令U 的颜色取反 G:询问树中最远的黑色点距离是多少?题目分析:巨巨们都太神了,居然把这题目,当做动态点分的模板(雾 如果没有修改操作,考虑如何用裸的点分统计答案 对于每个点我们只需要知道他作为重心时经过他的两个黑点形成的最长链. 可以通过子节点获取信息 对于需要进行动态修改以及动态获取最大值,堆应该是一个不错...原创 2018-03-31 08:34:37 · 445 阅读 · 0 评论 -
[BZOJ 3730] 震波
题目描述:给出一棵树 每个点有价值Vi 0:u k 询问以u为中心距离不超过k的价值和 1:u v 更改城市 u 的价值为 k题目分析:有修改就是动态的点分了 考虑用两棵线段树维护答案 线段树2维护u的子树到u的价值和,下标是距离 线段树1维护u的父节点的子树到u父节点的价值和,下标是距离 建点分树,容斥一下搞答案,修改的话暴力爬树就好了 线段树不可过,需要用树状数...原创 2018-03-31 08:35:07 · 208 阅读 · 0 评论