摘要:
网络流是什么? 网络流是 OI 图论中的内容,比较有用的是网络最大流与费用流。 网络流就像一个复杂的水网,它有一个源点 ,可以供应无穷无尽的水,有一个汇点 ,要让水从源点流到汇点,我们就连上了许多水管,也就是边,中间有一些中转站连接不同的水管,也就是点,每条水管都有一个流量上限, 阅读全文
摘要:
并查集是算法竞赛中常用的一种数据结构。 它可以高效地处理集合之间的操作与询问。 其主要功能是查询两个元素是否在同一个集合以及将两个集合合并。 第一部分 并查集的基本操作 算法思想 我们将所有元素建成很多棵树(森林),每一棵树就是一个集合。 因为并查集是一个树结构,那么每个节点都有一个指针指向父节点。 阅读全文
摘要:
第一部分 按值分裂的 FHQ-Treap 按值分裂的 FHQ-Treap 的典型例题是P3369 【模板】普通平衡树。 思路 FHQ-Treap 是什么? FHQ-Treap 是二叉搜索树的一种。 比如: FHQ-Treap 的思想是什么? 分裂->操作->合并 下面我们就来慢慢讲这些操作。 分裂 阅读全文
摘要:
P3369 【模板】普通平衡树 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 100010, INF = 1e9; struct Node { int ch 阅读全文
摘要:
点分治,重心分治。 使用场景:树上大量路径统计问题。 算法原理: 按照重心划分树,可以使划分的时间复杂度 。 分治的思想在于,讨论每一棵子树时,经过或者不经过根节点。 P3806 【模板】点分治1 题意 给定一个带权无向图,问树上有多少点对之间距离 。 思路 阅读全文
摘要:
以一道题来说明何谓根号分治。 P3396 哈希冲突 如果对于每个操作进行暴力求解,即从 开始不断累加 。单次询问时间复杂度: ,总时间复杂度 。 可以预先处理好每个询问的结果,即用上一步的方法计算后将结果保存下来,用 表示 阅读全文
摘要:
普通线段树 P3372 【模板1】线段树1 使用线段树进行维护。 #include <iostream> #include <cstring> #include <algorithm> #define int long long using namespace std; const int N = 阅读全文
摘要:
AC自动机 (Aho-Corasick Algorithm)。 AC自动机是多模匹配算法,在一个文本串 中查找多个不同的模式串 。 多模匹配问题:给定一个长为 的文本 , 以及 个平均长度为 的模式串 \(P_1, P_2, \do 阅读全文
摘要:
P3390 【模板】矩阵快速幂 矩阵乘法: 矩阵快速幂:与普通快速幂类似。 特殊地,定义 为单位矩阵 \(I = \begin{bmatrix} 1 & 0 & \cdots & 0 \ 0 & 1 & \c 阅读全文
摘要:
P3812 【模板】线性基 题目描述 给定 个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。 提示 注意开long long #include <iostream> #inclu 阅读全文