高斯消元
计算(Aoverrightarrow{x}=B)的(overrightarrow{x})
为了减小误差,每次选择主元的时候要选择最大的主元。
在欧几里得环中能进行运算,如(Z[i],Z[n])
欧几里得环:能定义带余除法的环。
逆矩阵
对于方阵(A),(A^{-1}A=AA^{-1}=I)。(通常情况下(AB eq BA))
对于(AB=I),在同时对(A,I)进行线性变换(将两行/列交换,将一行/列乘上一个数加到另外一行/列),等式仍然成立,那么把(A)消元成(I),(I)做同样的线性变换之后得到的就是(A^{-1})。
例1 CF446D
题目描述:对于(n)个点的图,有(k)个关键点,求出对于每两个关键点(1leq ileq jleq k),从第(i)个关键点出发,下一个碰到的关键点是第(j)个关键点的概率。(nleq 500)
枚举起点,设(g[i])表示经过(i)号点的期望次数。(a[i],a[2],ldots,a[k])是出口。
使用高斯消元就可以了。
矩阵快速幂
多次回答(A^noverrightarrow{B}),其中(A)相等,(nleq 10^{18})
倍增预处理(A^{2^i}),时间复杂度(O((n^3+qn^2)log n))
行列式
行列式的定义
行列式交换两行,值取相反数。
行列式将一行乘上(lambda),加到另一行,值不变。
然后通过高斯消元将行列式消成上三角行列式。时间复杂度(O(n^3))
行列式的展开
余子式:将(A)中去掉第(i)行和第(j)列之后的行列式的值。
代数余子式:余子式乘上((-1)^{i+j})。
行列式按行/列展开:
行列式的应用
在(d)维空间中,(overrightarrow{x_1},overrightarrow{x_2},ldots,overrightarrow{x_d})围成的(d)维棱锥的有向体积为(frac{1}{d!}|det(x_{i,j})|)
对于(x_igeq 0,sum x_ileq S)的解集的体积为(frac{S^d}{d!})
例2 THUPC 2017 E
题目描述:给出(n-1)维空间的(n+1)个点,保证这(n+1)个点的每一维坐标是(0/1),求凸包体积。(nleq 35)
(n)个点围成的(n-1)维的体积为(frac{1}{(n-1)!}|det(P_{i+1}-P_1)|)
结论:任选(n)个点求出体积,每个点恰好被覆盖了两次(??)。
(n+1)种方法选出(n)个点求出体积求和之后再(/2)
注意中途计算的时候不能取模,因为要取绝对值之后再加起来。
矩阵树定理
对于无向带权图(G),(D_{i,i}=deg_i),(D_{i,j}=-c_{i,j}(i eq j))的矩阵称为拉普拉斯矩阵,它的任意一个代数余子式的值为这个图的所有生成树的权值乘积之和。
通过这个可以算出(n)个点的有标号无根树有(n^{n-2})个。
扩展:对于一个有向图(G),它以(i)为根的有根树形图的行列式为(D_{i,i}=indeg_i,D_{i,j}=-c_{i,j})去掉第(i)行第(i)列的值。
BEST Theorem
(n)个点的有向图的欧拉回路个数为任意一个点的树形图*(所有点出度-1)!的乘积。
UOJ226
题目描述:给一个(n)个点的,边的条数(leq n)的无向连通图,每条边重复(t_i)次,求欧拉回路条数。(n,t_ileq 1000)
对于树的情况,对于每个边,按照(t_i)的奇偶性定向。
对于基环树,。。。。。
Band Matrix
带状矩阵,也就是所有非零数距离主对角线不超过(d)。
进行高斯消元的复杂度为(O(nd^2))。
注意换主元的方法,当当前值为0的时候,需要向右找一个非零数,交换两列。
通常用于网格图相关的计算。
例3 CF963E
题目描述:在平面上,一开始在((0,0))上,每次随机向四个方向走,问走到距离原点超过(R)的期望步数。
数据范围:(Rleq 50)
直接列方程+带状矩阵高斯消元。
主元法
将其中一部分的变量作为主元,如果其他变量都直接与这些变量线性相关,那么可以用这些变量来列出方程,优化计算。
例如在网格图中,以第一行的(n)个数作为主元,表示出其他(n(m-1))个变量,然后再列出方程计算。
线性空间
一个对加法、数乘封闭的数域。
一个向量组的生成空间是能用这些向量的线性组合表示出来的所有向量(overrightarrow{x}=sumlimits_{i=1}^na_ioverrightarrow{x_i})。
基:一个线性空间的极大线性无关组。
维数:基的大小。
向量组的秩:这些向量的生成空间的维数。
矩阵的行/列秩:将每一行/列看做一个向量,这个向量组的秩就是这个矩阵的行/列秩。
定理0:任意一个矩阵的行秩=列秩,统称这个矩阵的秩。
定理1:在(mathrm{mod} p)的意义下,做(dim V=d),则(|V|=p^d)
定理2:(Aoverrightarrow{x}=overrightarrow{0})的解空间是线性空间。
定理3:对于(Aoverrightarrow{x}=overrightarrow{b}),若有解,则解的数量为(p^{n-mathrm{rank}(A)})
求矩阵的秩:将矩阵消元成为下阶梯型矩阵,非0行的数量就是秩。
拟阵(Linear Matroid)
具体见luogu日报181
..........(目前没有理解)
例4 HDU Multi-University Contest 1-B
...
例5 UOJ 91
...
例6 SRM 620 Hard
题目描述:对于一个(n imes m)的矩阵,选出一些数,每行/列奇数个,乘积为完全平方数的方案数。
数据范围:(n,mleq 20,a_{i,j}leq 10^9)
将每个数按照质因数分解的指数的奇偶性写成一个(Z_2)的向量。
克莱姆法则
对于线性方程组(Aoverrightarrow{x}=overrightarrow{b}),在有唯一解的情况下,它的解为(x_i=frac{det(A_i)}{det(A)}),其中(A_i)是将(A)的第(i)列换成(overrightarrow{b})的矩阵。
伴随矩阵
假设(A^{*})是(A)的代数余子式的矩阵的转置,且(A)可逆,那么(A^{-1}=frac{A^*}{|A|})。(A^*)称为(A)的伴随矩阵。
Schwartz-Zippel Lemma
一个(n)次(m)元的(mathrm{mod} p)的多项式(f(x_i)),在每个值随机的情况下,(Pr(f(x_i)=0)leq frac{n}{p})
应用
判断二分图是否存在完备匹配。
积和式
图(G)有完备匹配当且仅当积和式不为0。
Tutte Matrix
定义无向图的Tutte矩阵为(widetilde{A}_{i,j}=[(i,j)in E](-1)^{[i>j]}x_{i,j}),其中(x_{i,j})是一个与((i,j))有关的变量。
定理1: 图(G)有完备匹配当且仅当(det A(G) eq 0)
定理2: 图(G)的最大匹配的大小为(frac{1}{2}mathrm{rank}(widetilde{A}(G)))
定理3:????
Sherman-Morrison 公式
(overrightarrow{u},overrightarrow{v})是两个列向量。((uv^T)是一个(mathrm{rank})为(1)的矩阵)
动态传递闭包
支持动态加/删边,维护传递闭包。
设(A)为邻接矩阵,则传递闭包之后为(sum_{i=0}^{+infty}A^i=frac{1}{I-A}),将每条边和对角线作随机权值,用上面的定理维护动态逆。
ICPC2018 Nanjing E
对于一个有向图,随机游走,对于每一对点((i,j)),求从(i)到(j)的期望步数。((nleq 500))
将方程列出来之后进行高斯消元。
设(p_{i,j})表示从(i)出发,直接走到(j)的概率,(f_{i,j})表示从(i)出发,走到(j)的期望步数,用(g_i)表示从(i)出发回到(i)的期望步数。
所以
现在的问题是计算(G)。
设(q_{k,i})表示从(i)出发走(k)步回到(i)的概率。
。。。。。。。
特征值与特征向量
对于矩阵(A),如果存在一个数(lambda),非零向量(x)满足(Ax=lambda x)。则称(lambda)为(A)的特征值,(x)为(A)的特征向量。
要求(det(lambda I-A)=0)。
(det(lambda I-A))为关于(lambda)的(n)次多项式,且首项系数为1,称为矩阵的特征多项式。
根据代数基本定理,(det(lambda I-A))有(n)个根,所以(A)有(n)个特征值和对应的特征向量。
Hamilton-Cayley Theorem
设(f(x)=det(xI-A)),那么(f(A)=0)。
应用:用于求解线性递推。第(n)项为(sumlimits_{i=0}^{k-1}St_i imes [x^i](x^n mathrm{mod} (x^k-c_1x^{k-1}-ldots-c_k)))。
相似与对角化
对于一个矩阵(A),存在一个矩阵(P,D),使得(A=PDP^{-1}),且(D)为对角矩阵。则(A^k=PD^kP^{-1})
(P)为特征向量组成的矩阵。
可以快速计算矩阵的幂。
CF923E
给出一个((n+1) imes (n+1))的矩阵,(A_{i,j}=[ileq j]frac{1}{j}),给出向量(p),每次求(A^m imes p)
BM算法
(完全去世)。。。