$cdq$分治浅谈 1.分治思想 分治实际上是一种思想,这种思想就是将一个大问题划分成为一些小问题,并且这些小问题与这个大问题在某中意义上是等价的。 2.普通分治与$cdq$分治的区别 普通分治与$cdq$分治都是基于分治思想之上的算法,但是他们是有区别的。普通分治的适用条件 ...
因为树具有一般的图没有的特殊性质,所以树考的比图要多得多。而树上分治算法则是解决树上路径信息静态统计的一大利器。 点分治 以点为分界线的分治,每次选取一个点,把经过这个点的路径信息统计完,再在这个点的子树里递归统计没有经过这个点的路径信息,这样可以保证不重不漏的统计每一条路径的信息。如果每次选择重心为这个分界线,那么每次联通块大小至少会缩小一半,所以每个点最多被遍历 logn 次,复杂度就得到了保 ...
2018-11-25 10:43 0 873 推荐指数:
$cdq$分治浅谈 1.分治思想 分治实际上是一种思想,这种思想就是将一个大问题划分成为一些小问题,并且这些小问题与这个大问题在某中意义上是等价的。 2.普通分治与$cdq$分治的区别 普通分治与$cdq$分治都是基于分治思想之上的算法,但是他们是有区别的。普通分治的适用条件 ...
Ⅰ、预备知识 整体二分??? Ⅱ、抛出问题 我们先来看一道洛谷的模板题 题目背景 这是一道模板题 可以使用bitset(不会),CDQ分治,K-DTree(不会)等方式解决。 题目描述 有\(n\)个元素,第\(i\)个元素有\(a_i\)、\(b_i\)、\(c_i\)三个属性,设 ...
动态点分治浅谈 一、前置知识 在学习动态点分治之前要会点分治,或者会点分治的思想,这里有我对点分治讲解:链接。其次,学习动态点分治还需要会一些单步容斥的思想。 二、浅谈 我们考虑一个用点分治能做的题目的特性:这个题目不能修改。那么对于要进行修改的树上问题,我们可以考虑动态点分治 ...
以时间为下标建线段树,则持续[L, R]时间的一个事物就能被表示成logn段区间。 这样就避免删除只有插入。 例题: bzoj4644 经典傻逼题 每个点的点权为与它相连的边的权值异或和。求最大权点集即可。 线段树分治 + 线性基 + bitset ...
目录 类型一 例题1:八纵八横 代码: 例题2:时空旅行 代码: 类型二 首先,要求可以离线。 线段树分治有两种。 类型一 操作基于区间,单点询问 ...
2014徐寅展论文《线段树在一类分治问题上的应用》读后感。 线段树分治 线段树分治其实就是有撤销操作的时间分治。 题目让你维护一些信息,每次可以询问,可以执行一种操作,也可以将之前的某个这种操作撤回。 操作容易维护,但撤回操作不容易维护。 需要将操作,询问都离线下来。将时间轴画出来 ...
树的直径 树的直径(Diameter)是指树上的最长简单路。 直径的求法:两遍搜索 (BFS or DFS) 任选一点w为起点,对树进行搜索,找出离w最远的点u。 以u为起点,再进行搜索,找出离u最远的点v。则u到v的路径长度即为树的直径。 简单证明: 如果w在直径上,那么u一定是直径 ...
https://www.luogu.org/blog/Miracevin/shuo-ju-jie-gou 一种离线处理方法 可以处理“具体哪个修改对询问有影响”、可以贡献不独立、可以支持插入删除 ...