高斯消元入门
数学上,高斯消元法(Gaussian Elimination),是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生出一个行梯阵式。
解多元方程组特别方便。
数学上,高斯消元法(Gaussian Elimination),是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生出一个行梯阵式。
解多元方程组特别方便。
主定理可以用来分析递归算法的时间复杂度(也叫渐进复杂度)。在以前,我们知道快速排序的时间复杂度是 \Theta (N \ast \log_2 N ) ,我们也知道它不稳定,但是我们仿佛不知道这个 \Theta (N \ast \log_2 N ) 是怎么来的……学习了主定理,我们就可以证明了~
这个“主定理”名字真的十分霸气:Master Theorem……
今天遇到一个十分 Dark 的题目,让你求:
\sum_{i=1}^{n-1} \sum_{j=i+1}^{n} lcm(i,j)
一共 T 组数据,数据范围是:T \leqslant 2 \ast 10^5, n \leqslant 3\ast 10^6……
在之前我们学过的最朴素的筛法就是埃氏筛法(埃拉托斯特尼筛法),它的复杂度是 \Theta (N \log_2(N))。其实这个朴素的筛法可以进行常数上的优化。还有一种更炫酷的筛法:欧拉筛,即线性筛法,时间复杂度为 \Theta (N)。
当我们取模的时候,被模数很大,无法直接计算其值,我们就会用取模运算的下面两个性质:
那么对于除法,是否也满足这个式子呢?
在数论中,对正整数 n,欧拉函数 \varphi (n) 是小于或等于 n 的正整数中与 n 互质的数的数目。此函数以其首名研究者欧拉命名,它又称为 φ 函数(由高斯所命名)或是欧拉总计函数(totient function,由西尔维斯特所命名)。(来自维基百科)
欧几里德算法(Euclidean algorithm)又叫做辗转相除法,用于求最大公约数。这个算法已经十分常见了。扩展欧几里德算法(Extended Euclidean algorithm)是欧几里德算法的扩展(废话……),这个算法在解不定方程的时候十分常见。
线段树是非常基础的算法了……
线段树是一种二叉树,可视为树状数组的变种,最早出现在2001年,由程序竞赛选手发明。我们ZS老师说过:“所有可以用树状数组解决的题目都可以用线段树解决,但是部分线段数可以解决的题目却无法用树状数组解决。”由此可见线段树十分强大……