摘要: Trie树 Trie树 1、用途 快速查询目标字符串在之前所有字符串中出现的次数 2、原理 将每个字符串看作有根树上的一条由根节点到另一非根节点节点的路径:除根节点以外每个节点都有一个与之对应的字符作为该点的权值,将路径所经过的点上的字符按次序排列得到原字符串。 在字符串结束的节点上打上标记,表示在 阅读全文
posted @ 2020-09-04 18:01 Lecxcy 阅读(180) 评论(0) 推荐(0)
摘要: 简单数据结构 单链表 1、用途 快速维护数据的添加与删除 2、原理 每个节点由数据与指针两部分组成,指针指向该节点后一个元素所在的位置。 头指针指向链表的第一个元素。如果有尾指针的话尾指针指向链表的最后一个元素。 利用数组模拟链表,原因是new操作太慢。 3、复杂度 插入/删除:\(O(1)\) 查 阅读全文
posted @ 2020-09-02 16:47 Lecxcy 阅读(128) 评论(0) 推荐(0)
摘要: 区间操作 区间交集 1、用途 若干区间求交集 2、原理 定义区间$I:{x|a\le x\le b}\(,以下简记为\)[a,b]$。 注意到两个区间交集的左端点一定是其中某一个区间的左端点,右端点也一定是其中某一个区间的右端点。于是区间$I_1:[l_1,r_1]$与$I_2:[l_2,r_2]\ 阅读全文
posted @ 2020-09-01 17:49 Lecxcy 阅读(382) 评论(0) 推荐(0)
摘要: 离散化 离散化 1、用途 在需要利用到数字相对大小的题目中,将大数一一映射到小数上,缩小数据规模 2、原理 哈希 3、复杂度 离散化:\(O(nlogn)\) 查询:\(O(logn)\) 4、模板 function <int(vector <int> &, int)> gtIdx = [&](ve 阅读全文
posted @ 2020-08-31 16:08 Lecxcy 阅读(168) 评论(0) 推荐(0)
摘要: 位运算 位运算 1、用途 广泛用于加快枚举速度以及实现各种黑科技 2、原理 几个基本操作:与(&)、或(|)、非(~)、异或(^)、左移(<<)、右移(>>)。 \(\begin{array} {c|cc} \text{&} & 0 & 1\\ \hline 0 & 0 & 0\\ 1 & 0 & 阅读全文
posted @ 2020-08-29 21:43 Lecxcy 阅读(242) 评论(0) 推荐(0)
摘要: 双指针 双指针 1、用途 在序列满足一定单调性的情况下线性时间寻找可行解 2、原理 以51Nod 1001为例。 首先对序列排序。假设目前已经找到$a[i]+a[j]=k(i<j)$,那么当$i$变为$i+1$时一定有$a[i+1]>a[i]$。设当前下标取到$p$时有$a[i+1]+a[p]=k$ 阅读全文
posted @ 2020-08-28 11:46 Lecxcy 阅读(83) 评论(0) 推荐(0)
摘要: 前缀和与差分 一维前缀和 1、用途 $O(1)$区间查询 2、原理 设$S[n]$为数列$a$的前$n$项和,那么$a[l:r]$的和为$S[r]-S[l-1](1\le l\le r\le n)$。 转移方程:\(S[i]=S[i-1]+a[i]\) 3、复杂度 预处理:\(O(n)\) 查询:\ 阅读全文
posted @ 2020-08-27 13:34 Lecxcy 阅读(170) 评论(0) 推荐(0)
摘要: 高精度 高精度加法 1、用途 计算两个大非负整数相加 2、原理 模拟竖式运算 3、复杂度 \(O(n)\) 4、模板 vector <int> add(vector <int> &A, vector <int> &B) { vector <int> temp; int t = 0; for (int 阅读全文
posted @ 2020-08-26 15:41 Lecxcy 阅读(154) 评论(0) 推荐(0)
摘要: 二分查找 整数二分 1、用途 快速查询目标值 2、原理 对于有序序列$a[l:r]$,每次选取区间中点与目标值比较,若相等则返回目标值,不等则缩小搜索区间。 3、复杂度 \(O(logn)\) 4、模板 //精确查找 function <int(int)> check = [&](int mid) 阅读全文
posted @ 2020-08-25 17:11 Lecxcy 阅读(107) 评论(0) 推荐(0)
摘要: 排序及相关知识点 快速排序 1、用途 排序 2、原理 选取区间中某个数$mid\in a[l:j]$为基准,将整个序列划分成左右两个部分$S_1$和$S_2$,使得$\forall a[i]\in S_1,a[i]\le mid;\forall a[j]\in S_2,a[j]\ge mid$。之后 阅读全文
posted @ 2020-08-24 00:43 Lecxcy 阅读(151) 评论(0) 推荐(0)