摘要:
高斯消元 高斯消元 高斯消元解线性方程组 高斯消元解异或线性方程组 高斯消元解线性方程组 通过初等行变换把增广矩阵化为阶梯型矩阵,并回代得到方程的解 适用于求解 包含 $n$ 个方程,$n$ 个未知数的多元线性方程组 前置知识:初等行(列)变换 把某一行乘一个非00的数 (方程的两边同时乘上一个非0 阅读全文
摘要:
中国剩余定理 设 $m_1, m_2,\cdots, m_n$ 是两两互质的整数,$m = \prod_{i=1}^{n} m_i$ ,$M_i = m / m_i$(除了 $m_i$ 之外其他所有 $m$ 的乘积),$t_i$ 是线性同余方程 $M_it_i = 1 \pmod {m_i}$ 的一 阅读全文
摘要:
扩展欧几里得算法 扩展欧几里得算法 欧几里得算法/辗转相除法(Euclidean algorithm) 裴蜀定理(Bézout 定理) 扩展欧几里得算法(Extended Euclidean algorithm) 求解线性同余方程 欧几里得算法/辗转相除法(Euclidean algorithm) 阅读全文
摘要:
快速幂 快速幂 快速幂 快速幂求逆元 快速幂 用于快速(在 $O(\log k)$ 的时间复杂度之内)求出 $a^k \bmod p$ 的结果,$1 \le a,p,k \le 10^9$,核心是反复平方法。 算法思想: 预处理出这些值: $a^{2^0} \bmod p,a^{2^1} \bmod 阅读全文
摘要:
欧拉函数 欧拉函数 用公式求欧拉函数 用筛法求欧拉函数 欧拉函数: 在数论中,对正整数 $N$,欧拉函数 $\varphi (N)$ 是小于等于 $N$ 的正整数中与 $N$ 互质的数的数目。 若正整数 $N$ 被唯一分解为 $N = p_1^{c_1}p_2^{c_2} \dots p_m^{c_ 阅读全文
摘要:
约数 约数 约数的定义 算数基本定理的推论 正约数集合 正约数个数 正约数之和 一、试除法求约数 二、约数个数 三、约数之和 四、最大公约数 欧几里得算法 更相减损数 约数的定义 若整数 $n$ 除以整数 $d$ 的余数为 $0$,即 $d$ 能整除 $n$,则称 $d$ 是 $n$ 的约数,$n$ 阅读全文
摘要:
质数 质数 一、试除法判定质数 二、分解质因数 三、筛质数 3.1 朴素筛法 3.2 埃氏筛法(Eratosthenes 筛法) 3.3 欧拉筛法(线性筛法) 一、试除法判定质数 质数的定义:若一个正整数无法被除了1和它自身之外的任何自然数整除,则称该数为质数(或素数),否则称该正整数为合数。 整个 阅读全文
摘要:
匈牙利算法 给定一个二分图,如: 匈牙利算法能够快速的计算出一种匹配方式,使得匹配的数量最多。注意,一个成功的匹配方式中,没有两条边是共用了同一个点的。 形象的说,这个问题可以理解成二分图两边分别是男生和女生,有连线的表示可以凑成一对,匈牙利算法就是用来计算最多能够凑成多少对(不存在脚踏多条船的情况 阅读全文
摘要:
染色法判定二分图 如果一张无向图的 $N$ 个节点($N \geq 2$)可以分成 $A,B$ 两个非空集合,其中 $A \cap B = \emptyset$,并且在同一集合内的点之间都没有边相连,那么称这张无向图为一张二分图。$A,B$ 分别称为二分图的左部和右部。 定理: 一张无向图是二分图, 阅读全文
摘要:
Kruskal 算法 首先,将所有边按照权重从小到大排序。这一步是Kruskal算法的性能瓶颈,时间复杂度为 $O(m \log m)$ 。不过由于排序的时间复杂度常数很小,所以Kruskal算法实际上是很快的。 第二部从小到大枚举每条边 $a \rightarrow b$,边权为 $w$ ,如果 阅读全文