随笔分类 - 数据结构
摘要:题意简述 给定序列 a1⋯n,有 q 次询问,每次给定 l,r,k,你需要在 l∼r 中找到一个长度为 k 的子序列 b1⋯k,求 \(\max\limits_{i=1}^k (b_i+b_{i \
阅读全文
摘要:题目描述 一家餐厅有 n 道菜,编号 1,2,…,n,大家对第 i 道菜的评价值为 ai。有 m 位顾客,第 i 位顾客的期望值为 bi,而他的偏好值为 xi。因此,第 i 位顾客认为第 j 道菜的
阅读全文
摘要:线段树 一种分治型结构,每个节点维护一段区间的信息,通过合并左右区间来完成查询。 节点数不会超过【比 2n−1 大的最小的 2 的幂次】,所以通常把空间开到 4n. 使用条件 对于一个操作含区间修改、区间查询的问题,什么情况下可以使用线段树? 共有三个必须满足的条件。 对于一
阅读全文
摘要:笛卡尔树(Cartesian Tree) 1. 定义 根据序列构造的满足以下性质的树: 二叉搜索树性质(BST):keyls≤keyx≤keyrs,key 默认为下标。 堆性质:valx≤valls≤valrs.
阅读全文
摘要:可并堆 / 左偏树 左偏树 外节点:只有一个儿子或没有儿子的节点。 距离:一个节点到离他最近的外节点的距离,即两节点之间的路径权值和。特别地,外节点的距离为 0,空节点的距离为 −1. 左偏树:满足如下性质的二叉树: 堆性质:任何节点的权值小于等于儿子节点的权值,即 \(val_{f
阅读全文
摘要:给定一棵树,有修改边权和查询两点之间边权最大值两种操作,对于每个查询输出结果。
运用化边权为点权的思想,把边权转移到点上,并使用线段树维护最值。
阅读全文