【BZOJ4543】[POI2014]Hotel加强版 Description 同OJ3522数据范围:n<=100000 Sample Input 7 1 2 5 7 2 5 2 3 5 6 4 5 Sample Output 5 题解:很神的做法 ...
BZOJ Hotel加强版 长链剖分 题面 BZOJ,没有题面 洛谷,只是普通版本 题解 原来我们的 O n 做法是设 f i j 表示以 i 为根的子树中,距离 i 的深度为 j 的点的个数,这样子可以每次在 LCA 处合并答案。 然后长链剖分优化一下,就变成了 O n 的 写的详细写的题解 玄学的指针我也没太懂啊。。。。我才不会说我代码是照着题解打的 upd:之前的代码蒯错了,我去BZOJ把 ...
2018-08-12 21:26 13 1190 推荐指数:
【BZOJ4543】[POI2014]Hotel加强版 Description 同OJ3522数据范围:n<=100000 Sample Input 7 1 2 5 7 2 5 2 3 5 6 4 5 Sample Output 5 题解:很神的做法 ...
这是和重链剖分(dsu on tree,http://www.cnblogs.com/zzqsblog/p/6146916.html)一类的trick,不过它的适用范围与dsu on tree不同,它适用于涉及到深度的查询。 例1 k-th ancestor query https ...
之前写了那么长一篇Blog…现在不如写篇小短文…说一下另一种树链剖分方法——长链剖分的事情。它可以比重链剖分更快地完成一些东西。 树链剖分的原始版本重链剖分非常经典,这里就不从头介绍了。 原本的剖分方法是按照子树大小剖分,与子树点数最多的儿子连成链,所以叫做重链剖分…然后显然就有 ...
长链剖分 长链剖分是一种类似\(\mbox{dsu on tree}\)的小\(\mbox{trick}\),可以把维护子树中只与深度有关的信息做到线性的时间复杂度。 实现方式&复杂度证明 对每个点寻找深度最大的儿子作为重儿子,其余作为轻儿子。由此得到了若干条互不相交的长链。 在维护 ...
BZOJ 洛谷 \(Description\) 给定一棵树,每次询问给定\(p,k\),求满足\(p,a\)都是\(b\)的祖先,且\(p,a\)距离不超过\(k\)的三元组\(p,a,b\)个数。 \(n,q\leq3\times10^5\)。 \(Solution\) \(p,a,b ...
【BZOJ3653】谈笑风生(长链剖分) 题面 BZOJ 洛谷 权限题啊。。。。 题解 首先根据题目给的条件,发现\(a,b\)都要是\(c\)的父亲。 所以这三个点是树上的一条深度单增的链。 因为\(a,b\)之间距离不超过\(k\),并且\(a\)被钦定了,所以只有两种情况: 一种 ...
长链剖分总结 概念 长链剖分和轻重链剖分十分相似,都是将一棵树节点的信息分成多条链的信息,但是前者是以深度剖分,后者则是以子树大小来剖分。 同时长链剖分还借鉴了$dsu\;on\;tree$的一些$trick$使得它能十分高效地合并子树信息。 性质 破天荒地写了证明 性质 ...
树链剖分是解决树上问题的一种常见数据结构,对于树上路径修改及路径信息查询等问题有着较优的复杂度。树链剖分分为两种:重链剖分和长链剖分,因为长链剖分不常见,应用也不广泛,所以通常说的树链剖分指的是重链剖分。在这里讲解并总结一下树链剖分的实现、优秀性质及应用。 重链剖分 先来介绍几个重链剖分 ...