摘要:
CDQ分治 定义: \(CDQ\) 分治是一种思想而不是具体的算法,和 动态规划 类似,大致分为三类: 解决和点对有关的问题。 \(1D\) 动态规划的优化转移 通过 \(CDQ\) 分治,将一些动态问题转化为静态问题。 解决和点对有关的问题: 这类问题类似于: 给定一个长度为 \(n\) 的序列, 阅读全文
摘要:
[HNOI2012]永无乡 题意: 一共 \(n\) 个点,每个点权值,给你 \(q\) 个操作: B x y 表示连接 \(x,y\) Q x k 表示求当前 \(x\) 所在连通块内权值第 \(k\) 小的点的编号 分析: 求一个联通块内的权值第 \(k\) 小的点,很容易想到主席树或者权值线段 阅读全文
摘要:
权值线段树 定义: 普通线段树维护的是数列的区间信息,而权值线段树维护了一列数中数的个数。 也就是说,我们的权值线段树就是用线段树维护了一堆桶 例子: 给定一个排列: \(1,1,1,2,3,4,5\) 其中,一棵线段树的叶子节点维护的是:有几个 \(1\),有几个 \(2\)。 他们的父亲节点维护 阅读全文
摘要:
线段树合并 前置芝士: 动态开点线段树和权值线段树: 因为只有动态开点线段树,在合并时才不用完整建一棵线段树 问题: 如果有若干个线段树,维护相同的值域,并且在某一棵线段树上进行单点修改操作。 最后,我们希望把这些线段树对应位置上的值相加,同时维护区间最大值。 这样,就用到了线段树合并: 思想: 就 阅读全文