随笔分类 -  before 2025.8 / 数据结构

摘要:#include <bits/stdc++.h> #define N 100005 #define inf 1000000000 using namespace std; struct Edge { int v, next; int u; } edge[N]; int tot, head[N]; i 阅读全文
posted @ 2025-05-28 19:36 流氓兔LMT 阅读(10) 评论(0) 推荐(0)
摘要:防止以后复习时忘掉 #include<bits/stdc++.h> using namespace std; struct Tree { int ch[2], fa, val, size; } tree[40001]; int n, X, root; int tot, lef_root, rig_r 阅读全文
posted @ 2025-05-26 18:44 流氓兔LMT 阅读(18) 评论(0) 推荐(0)
摘要:由一个键值二元组 \((k,w)\) 构成。要求 \(k\)满足二叉搜索树的性质,而\(w\) 满足堆的性质。 Treap 是笛卡尔树的一种,Treap 的 \(k\) 是随机的 始终维护右链。 #include <bits/stdc++.h> using namespace std; const 阅读全文
posted @ 2025-02-27 18:18 流氓兔LMT 阅读(22) 评论(0) 推荐(0)
摘要:二维线段树可以维护二维表的信息,(区域和、区域最值等) 内层树和普通线段树一样 #include <bits/stdc++.h> using namespace std; const int N = 1e3 + 5; int n, m; int s; int sum[N][N]; // 外区间查询 阅读全文
posted @ 2025-02-27 15:52 流氓兔LMT 阅读(29) 评论(0) 推荐(0)
摘要:倍增法的核心在于预处理每个节点向上2^k步所能到达的祖先节点,其中k是非负整数。这样,当查询两个节点的LCA时,可以快速地将两个节点跳到同一深度,然后再一起向上跳,直到找到它们的LCA。 板子 #include<bits/stdc++.h> using namespace std; const in 阅读全文
posted @ 2025-02-26 14:09 流氓兔LMT 阅读(20) 评论(0) 推荐(0)
摘要:#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 5; const double alpha = 0.7; struct Node { int l, r, val, size, cnt; bool deleted 阅读全文
posted @ 2025-02-25 21:25 流氓兔LMT 阅读(20) 评论(0) 推荐(0)
摘要:如果我们每添加一个元素都需要记住这个权值线段树的状态,以便于我们对历史的操作,那么如果只使用权值线段树,则我们需要n个权值线段树同时保存状态,对于非常多的元素,我们就需要保存非常多的权值线段树,这样做空间一定会爆炸,而主席树提供了这一功能。 板子 #include<bits/stdc++.h> us 阅读全文
posted @ 2025-02-25 18:13 流氓兔LMT 阅读(20) 评论(0) 推荐(0)
摘要:权值线段树维护的是桶,按值域开空间,维护的是个数。 简单线段树维护的是信息,按个数可开空间,维护的是特定信息。 普通线段树能解决区间最值和区间和问题 权值线段树可以解决数列第k大/小的问题 主席树能解决数列的子区间的第k大/小。 板子 #include <bits/stdc++.h> using n 阅读全文
posted @ 2025-02-25 15:31 流氓兔LMT 阅读(21) 评论(0) 推荐(0)
摘要:定义与原理 定义 无旋式 Treap 本质上是一棵二叉搜索树,每个节点除了存储键值(Key)外,还额外维护一个随机优先级(Priority)。它的键值满足二叉搜索树的性质,即左子树的所有节点键值小于根节点键值,右子树的所有节点键值大于根节点键值;而优先级满足堆的性质,通常是大根堆,即每个节点的优先级 阅读全文
posted @ 2025-02-25 07:47 流氓兔LMT 阅读(96) 评论(0) 推荐(0)
摘要:定义与原理 定义:K-D 树是一种二叉树,它是对数据点在 K 维空间中进行划分的树形数据结构。每个节点表示一个 K 维空间中的超平面,将空间划分为两个子空间,每个子节点对应一个子空间。 原理:K-D 树的构建基于数据点在各个维度上的取值。在构建过程中,会选择一个维度作为划分维度,然后根据该维度上的数 阅读全文
posted @ 2025-02-25 07:42 流氓兔LMT 阅读(74) 评论(0) 推荐(0)
摘要:1.建树 2.单点查询 3.单点修改 4.区间查询 5.区间修改 阅读全文
posted @ 2025-01-21 19:24 流氓兔LMT 阅读(21) 评论(0) 推荐(0)
摘要:1.建树 2.查询 阅读全文
posted @ 2025-01-21 17:08 流氓兔LMT 阅读(14) 评论(0) 推荐(0)
摘要:1.lowbit 2.update 3.sum 阅读全文
posted @ 2025-01-20 21:18 流氓兔LMT 阅读(19) 评论(0) 推荐(0)
摘要:存储单元存储线性表 阅读全文
posted @ 2024-11-21 22:15 流氓兔LMT 阅读(32) 评论(0) 推荐(0)
摘要:先进先出 阅读全文
posted @ 2024-11-21 22:15 流氓兔LMT 阅读(25) 评论(0) 推荐(0)
摘要:先进后出 阅读全文
posted @ 2024-11-21 22:14 流氓兔LMT 阅读(25) 评论(0) 推荐(0)
摘要:set应为是基于红黑树的平衡二叉树的数据结构实现 阅读全文
posted @ 2024-11-21 22:13 流氓兔LMT 阅读(35) 评论(0) 推荐(0)
摘要:map 映射 阅读全文
posted @ 2024-11-21 22:13 流氓兔LMT 阅读(35) 评论(0) 推荐(0)