排序
算法竞赛--高级数据结构合集
一、并查集 1、并查集的本质 作者:MuQYY 二、树状数组 1、树状数组的本质 作者:MuQYY 2、树状数组的基本应用 作者:MuQYY 三、线段树 1、线段树的本质 作者:MuQYY 2、线段树中的懒标记 作者...
线段树中的懒标记(Lazy-Tag)
1. 引言 在基础的线段树中,我们可以通过 $O(\log n)$ 的时间复杂度来完成单点更新和区间查询。然而,当需要对整个区间进行更新(如将区间 $[L, R]$ 的所有元素增加一个值 $d$)时,如果我们逐...
利用拓扑排序计算工程完成的最短时间
题目描述 有一项大的工程,工程中有许多前后依赖的子任务,每个子任务都规划了完成需要的天数,假设给出用字母表示的事件结点,整个工程的开始事件用A表示,工程结束事件用Z表示,用事件结点有...
线段树的本质
1. 引言 线段树是一种二叉树形结构的数据结构,用于处理区间查询和区间更新问题。它的核心思想是:将数组递归划分为多个区间(区段),并将这些区间组织成二叉树结构。这种设计使得我们可以在 $...
前序遍历和后序遍历判断是否二叉树唯一
题目描述 假设二叉树中的所有键值都是不同的正整数。唯一的二元树可以通过给定的后序和顺序遍历序列,或前序和顺序遍历序列来确定。但是,如果仅给出后序和前序遍历序列,则相应的树可能不再...
线段树的扫描线算法
1. 问题描述 在二维平面上给定若干个矩形,每个矩形由左上角和右下角的坐标确定。目标是计算这些矩形在平面上总的覆盖面积。注意,矩形之间可能存在重叠,我们需要排除重叠部分的重复计算。 为...
树状数组的本质
1. 引言 树状数组(Fenwick Tree)是一种用于高效处理动态数组前缀和的数据结构。它可以在 $O(\log n)$ 时间内完成单点更新和前缀和查询,适用于需要频繁修改和查询的场景,比如处理区间和、求...
并查集的本质
一、并查集(Union-Find Set)的基本概念 1. 什么是并查集? 并查集是一种用于处理不相交集合(Disjoint Sets)合并及查询的问题的数据结构。 它支持两种操作: 查找(Find):确定元素属于哪个...
树状数组的基本应用
树状数组的基础应用 树状数组(Fenwick Tree)在处理区间更新、区间查询、单点查询等场景中非常高效。这里我们重点介绍两种进阶应用: 区间修改 + 单点查询 区间修改 + 区间查询 1. 区间修改 + ...




