
点分治
LauZiyang
exploring
展开
-
点分治 【BZOJ3784】树上路径
给定一个N个结点的树,结点用正整数1..N编号。每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路边上经过边的权值。其中要求a < b.将这n*(n-1)/2个距离从大到小排序,输出前M个距离值。额这里引入了一个新的概念:点分治序。由于点分治是一个静态算法,所以对于多次点分治只需要做一次哦记下来点分治顺序和遍历了啥(注意vector)这是因为存的总数不超过NlogN大(...原创 2018-09-24 16:53:10 · 502 阅读 · 0 评论 -
总结:点分治学习笔记
不会点分治的我瑟瑟发抖点分治:对树进行的一种分层操作。这种算法的均摊的复杂度是:log这种算法和树链剖分的区别是1)树链剖分可以解决待修改问题2)点分治是解决计数类和全树路径的问题,树链剖分的路径是特殊的好的我们看一下点分治:例题:树中点对统计这个有~困难记录某个部分的所有路径然后暴力匹配这里有个减贡献的问题这个实际上会被计算是吧QwQ所以特别减...原创 2018-09-21 21:29:54 · 444 阅读 · 0 评论 -
点分治:聪聪可可
聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数。接下来...原创 2018-09-21 21:33:37 · 2920 阅读 · 0 评论 -
点分治 [IOI2011]Race
给一棵树,每条边有权。求一条简单路径,权值和等于K,且边的数量最小。点分治:维护到这个值的最少步数但是这个就只能一个子树一个子树的更新了然后memset历史代价一定会TLE所以再DFS一遍清除历史代价#include<iostream>#include<cstdio>#include<cmath>#include<algo...原创 2018-09-21 21:38:25 · 416 阅读 · 0 评论 -
点分治 【模拟试题】树上路径
给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。这个实际上是聪聪可可的升级版本它和一般的点分治不太一样他的代价是在点权上的。这个存在一个问题:你维护两条点权路径,会...原创 2018-09-21 21:45:22 · 413 阅读 · 0 评论