虚树(Virtual Tree):询问点与其 LCA 组成的树。 性质 假设询问点只有kk个,那么虚树最多只含有2k−12k−1个结点。 这一性质使得我们能够排除很多无用状况,减小时间复杂度。 建树:单调栈建树 类似笛卡尔树,我们用一个栈来维护当前的右链,不过不同的是,这里的右链都是还未加入虚树的节点。 在栈加入根节点rtrt。
当我们在树上有部分结点是无用的或用处不大的时,我们可以将其在树上删去,仅仅保留关键点和连接关键点的边。 如图,图中红点是关键点,右图即为建立的虚树。 二、性质 1. 空间线性性质 虚树的点数是O(n)的,因为其仅仅包含n个关键点和它们的lca,而lca的个数最多n−1个,故虚树结点数最多2n−1。 2.结...
虚树,是对于一棵给定的节点数为 n的树 T,构造一棵新的树 T' 使得总结点数最小且包含指定的某几个节点和他们的LCA。 虚树是只包含关键点以及关键lca的点,而其他不影响虚树结构的点和边都相当于进行了路径压缩,整颗虚树的规模不会超过关键点数目的两倍. 虚树实际就是为了解决一类树形动态规划问题而诞生的 伪虚...
根据树的 dfs 序不难得出, n 个关键节点组成的虚树节点个数至多是 2n-1。 而回到我们的线段树当中,一般来说我们维护的信息核心都是放在叶子节点上,并通过 pushup 将其推到上面的非叶子节点进行维护。而上面这个示意图中我们可以看到,这两个叶子节点中间的长链都是冗余的(也就是和叶子节点完全一致)。两个叶子...
【洛谷日报#184】浅谈虚树 【洛⾕⽇报#184】浅谈虚树 虚树的概念 虚树,是对于⼀棵给定的节点数为 n 的树 T,构造⼀棵新的树 T' 使得总结点数最⼩且包含指定的某⼏个节点和他们的LCA。虚树解决的问题 利⽤虚树,可以对于指定多组点集 S 的询问进⾏每组 O(|S|log_2n+f(|S|)) 的回答,...
接下来所说的"树"均指虚树,原来那棵树叫做"原树".构建过程如下:按照原树的dfs序号(记为dfn)递增顺序遍历选择的节点. 每次遍历节点都把这个节点插到树上.⾸先虚树⼀定要有⼀个根. 随便扯⼀个不会成为询问点的点作根.(并不觉得是这样)维护⼀个栈,它表⽰在我们已经(⽤之前的那些点)构建完毕的...
虚树学习笔记 基本要求:对于一颗树,设一些节点为特殊点,我们需要保留关键点,并将这些关键点,使之重新形成一颗只有关键点并且和原树形态一致的虚树。 求关键点 原则1:将原树设为有根树,对于一个非特殊点,若他至少有两颗子树含有特殊点,则将他设为关键点。
虚树: 类似有很多组询问, 而询问总点数又较小的, 可以用虚树解决, 具体来说, 就是将每次的k个点重新建一棵树, 然后在这颗树上DP 建树的方法 : 总体来说, 就是用栈维护一个根到当前点的链, 栈中的节点就是根到栈顶路上的所有关键点, 具体步骤如下 ...
崩坏3中虚树神骸的打法攻略如下:阵容搭配:推荐阵容:驱动装·山吹、圣女祈祷、白夜执事。开局应对:BOSS冲锋:开局BOSS会反复冲锋三次,此时使用山吹直接举盾进行盾反三次。中期战斗策略:长枪攻击:在大约1520秒时,BOSS会丢出长枪对附近敌人造成持续伤害,这个伤害可以被山吹的护盾抵消。抬脚踏地:长枪攻击...
崩坏3中虚树神骸的打法主要包括以下几点:阵容搭配:推荐使用驱动装·山吹、圣女祈祷和白夜执事的组合。开局应对:开局时,BOSS会反复冲锋三次,此时山吹可以直接举盾进行盾反三次来抵挡冲锋。中期策略:在大约15到20秒左右,BOSS会丢出长枪对附近敌人造成持续伤害,这个伤害可以被山吹的护盾抵消。随后BOSS会...