摘要: 堆 堆是一种数据结构,主要包含以下操作: 插入一个数:将该数插到最后的位置,进行一次up操作 求集合中的最小值:输出堆顶元素 删除任意一个元素:将要删除的元素与末尾元素交换,然后进行一次up和down操作 修改任意一个元素:将某位置的元素修改,然后进行一次up和down操作 删除最小值:交换堆顶元素 阅读全文
posted @ 2022-12-09 22:07 S!no 阅读(82) 评论(0) 推荐(0)
摘要: 并查集(Disjoint-Set) 并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。详细地说,并查集包括如下两个基本操作: Get,查询一个元素属于哪个集合。 Merge,把两个集合合并成一个大集合。 为了具体实现并查集这种数据结构,我们首先需要定 阅读全文
posted @ 2022-12-09 22:07 S!no 阅读(201) 评论(0) 推荐(0)
摘要: Trie Trie(字典树)是一种用于实现字符串快速检索的多叉树结构。Trie 的每个节点都拥有若干个字符指针,若在插入或检索字符串时扫描到一个字符 c ,就沿着当前节点的 c 字符指针,走向该指针指向的节点。下面详细讨论 Trie 的基本操作过程: 初始化:一棵空 Trie 仅包含一个根结点,该点 阅读全文
posted @ 2022-12-09 22:07 S!no 阅读(34) 评论(0) 推荐(0)
摘要: KMP KMP 算法,又称模式匹配算法,能够在线性时间内判定字符串 $P[1 \sim N]$ 是否为字符串 $S[1 \sim M]$ 的子串。并求出字符串 $P$ 在字符串 $S$ 中各次出现的位置。 首先,一个 $O(NM)$ 的朴素做法是,尝试枚举字符串 $S$ 中的每个位置 $i$,把字符 阅读全文
posted @ 2022-12-09 22:06 S!no 阅读(48) 评论(0) 推荐(0)
摘要: 单调队列 单调队列算法很多时候用手写的模拟队列比较方便,因为很多时候需要双口出队的队列,主要是在队尾也有删除元素的需求。而模拟队列都是游标移动来限定队列中的所有元素,所以用模拟队列很自然的可以做到双端队列的操作。 单调队列一个经典应用就是求滑动窗口里的最大(或者最小)值。 算法步骤: 把该滑出的滑出 阅读全文
posted @ 2022-12-09 22:06 S!no 阅读(63) 评论(0) 推荐(0)
摘要: 单调栈 题目链接:AcWing 830. 单调栈 时间复杂度:$O(N)$ #include <iostream> using namespace std; const int N = 1e5 + 10; int n; int stk[N], tt; // 数组模拟栈,栈顶指针默认为0(空) int 阅读全文
posted @ 2022-12-09 22:06 S!no 阅读(25) 评论(0) 推荐(0)
摘要: 队列 数组模拟队列 题目链接:AcWing 829. 模拟队列 #include <iostream> using namespace std; const int N = 100010; int n; int q[N]; int hh = 0, tt = -1; void push(int x) 阅读全文
posted @ 2022-12-09 22:06 S!no 阅读(27) 评论(0) 推荐(0)
摘要: 栈 数组模拟栈 题目链接:AcWing 828. 模拟栈 #include <iostream> using namespace std; const int N = 100010; int n; int stk[N], tt; void push(int x) { stk[++ tt] = x; 阅读全文
posted @ 2022-12-09 22:06 S!no 阅读(24) 评论(0) 推荐(0)
摘要: 双链表 题目链接:AcWing 827. 双链表 #include <iostream> using namespace std; const int N = 100010; int e[N], l[N], r[N], idx; void init() { // 头节点为0,尾节点为1,插入的节点标 阅读全文
posted @ 2022-12-09 22:05 S!no 阅读(18) 评论(0) 推荐(0)
摘要: 单链表 题目链接:AcWing 826. 单链表 #include <iostream> using namespace std; const int N = 100010; int n; int e[N], ne[N], head, idx; void init() { idx = 0; head 阅读全文
posted @ 2022-12-09 22:05 S!no 阅读(15) 评论(0) 推荐(0)