12 2022 档案
摘要:边权树链剖分 一般的树链剖分都是维护的点权,而如果要维护边权怎么办呢? 思路 我们可以把边权转换为点权。一个点有很多个儿子,但只有一个父亲。如果一个节点的点权记录到其儿子的边权就显然不行了,只能记录这个点到其父亲的边权。 如果要修改查询 $\text{x y}$ 的所有边权,通过维护点权的思路,先修
阅读全文
摘要:树链剖分学习笔记 简介 树链剖分是一种可以把树丢到线段树上维护的一种算法,时间复杂度为 $O(n \log^2 n)$。 思路 一、一些概念 1.重儿子:如果一个点有儿子,那么所有儿子中儿子最多的一个儿子就是这个点的重儿子。有点绕,可以看图理解。图中标红的点就是重儿子。 2.轻儿子:不是重儿子的点就
阅读全文
摘要:[SCOI2014]方伯伯的玉米田 题目描述 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。这排玉米一共有 $N$ 株,它们的高度参差不齐。方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩下的玉米的高度构成一个单调不下降序列。方伯伯可以选择一
阅读全文
摘要:树状数组学习笔记 简介 树状数组是一个可以在 $O(\log n)$ 的时间复杂度内支持单点修改和查询前缀和的操作的数据结构。 原理 观察发现线段树中有很多的冗余的部分。 红色部分为冗余部分。 把冗余部分去掉。 把每个节点编个号。 把每个节点的子节点个数和父结点编号列表出来。 | 1 | 2 | 3
阅读全文