树的点分治
Anxdada
多读书多看报, 少吃零食多睡觉
展开
-
nowcoder Wannafly挑战赛1 A 题 【树形dp or 点分治】
传送门 //题意不多说. //说下思路: 这道题最最简单的做法就是On的扫一遍, 然后根据奇偶的点直接算答案, 然后最近才学了点分治, 又因为这道题就是维护树上的路径问题, 所以想练练手, 于是我就用的点分治做的, 虽然是牛刀…..然后一样的路径分为过根节点的和不过的, 我们还是只讨论过根节点的, 其他的递归处理即可. 然后依然根据奇偶来, (还是一样的, xixi), 然后注意一样的要处理子树原创 2017-10-19 17:46:25 · 367 阅读 · 0 评论 -
HDU - 5977 Garden of Eden 【高维前缀和 + 点分治】
传送门 // 一棵树, 上面都有一个点权, 问有多少条路径满足进过的点的类型刚好有k种, // 首先这个肯定是点分治, 但是难点和POJ那题的不同处就是这个是状态, 那么就不能像POJ那题进行排序选点了, 所以我们应该要换一种比较高效的方法. 首先是k只有10, 那么我们进行状压, 那么我们要求的就是路径上这条路与( | )起来等于( 1因为我们要求的是某一条路径和已知的路径或起来的值,原创 2017-10-20 18:59:18 · 543 阅读 · 0 评论 -
树的点分治 【模板】
传送门 //就是求树上距离小于等于k的点对有多少对. //就是树的点分治模板题, 推荐ioi国家集训队论文, 里面讲解的非常清楚了. 我就不多说了. 存个板子.//树的点分治,该代码是求树上有多少对点的dis//vis代表该点是否已经当做过重心,siz是子树节点个数、mv是子树中最大的节点数int n, cnt, head[maxn], k, vis[maxn], root, maxx原创 2017-10-18 21:21:24 · 389 阅读 · 0 评论 -
SPOJ - QTREE5 Query on a tree V 【动态点分治 + 堆维护】
传送门 题目大意: 两种树上操作, 树上的点原本都是黑色, 1: 反转一个点的颜色 2: 问询距离一个点最近的白色点(包括自己) 思路: 对于每一个点都维护一个堆, 表示的是距离这个点的左右白色点和到她的距离, 按距离维护即可. 然后每次询问一个点的时候就分别从当前点分别向它的重心跳然后询问答案即可, 树上距离就用LCA维护即可, 具体请看代码实现.AC Codeconst in...原创 2018-07-30 09:48:39 · 336 阅读 · 0 评论