算法
数据结构、图论、数论与计算几何的算法笔记
-
Shamir 秘密共享
将秘密 S 派生 n 个碎片,并设置阈值 m,集齐不少于 m 个碎片,即可恢复出秘密 S,少于 m 个碎片则无法获得关于 S 的任何信息。
-
二分图与匈牙利算法
二分图又称作二部图,是图论中的一种特殊模型。
-
凸包:Graham 扫描
凸包(Convex Hull)是一个计算几何(图形学)中的概念。
-
树状数组
树状数组 (Binary Indexed Tree(B.I.T), Fenwick Tree) 是一个查询和修改复杂度都为 log(n) 的数据结构。
-
从 KMP 到 AC 自动机:单串匹配、Trie 与多模匹配
Trie 树一般指字典树,又称单词查找树,是一种树形结构,是一种哈希树的变种。
-
图的连通性:DFS 树、割点与桥、双连通分量
DFS 树即深度优先生成树。从一个点开始对有向图做 DFS 后可以得到一棵 DFS 树,树上的边就称为树边。
-
哈希和哈希表
把串当成一个 b 进制数,一个串就映射成了一个数;判两个串是否相等,比一下 hash 值就行。
-
最近公共祖先 LCA:倍增、ST 与 Tarjan
最近公共祖先(Least Common Ancestor)对于有根树 T 的两个结点 u 、 v ,最近公共祖先 LCA(u,v) 表示一个结点 x ,满足 x 是 u 和 v 的祖先且 x 的深度尽可能大。
-
最小生成树 MST:Kruskal 与 Prim
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边,称作最小生成树 (Minimum Spanning Tree, MST) 。
-
素数筛法:从埃氏筛到欧拉筛
素数又称质数,是指一个大于 1 的正整数,如果除了 1 和它本身以外,没有其他的约数,例如 2,3,5,7,3021377 等,反之就是合数。