正题
线性组合:对于 nnn 维向量组 aia_iai 和系数 kik_iki,称为其对应的线性组合为 ∑i=1maiki\sum_{i=1}^m a_ik_i∑i=1maiki 。
向量空间:对于一个 nnn 维向量的集合 VVV ,我们称其是一个向量空间,当且仅当 VVV 的任意两个向量的任意线性组合仍 ∈V\in V∈V 。
生成空间:对于 nnn 维向量组,我们称其生成空间为其所有线性组合组成的集合。
线性相关:对于 nnn 维向量组,我们称其为线性相关的,当且仅当他们可以通过不全为 000 的线性组合得到零向量。
线性无关:对于 nnn 维向量组,我们称其为线性无关的,当且仅当他们不是线性相关的。
基:对于一个向量空间 VVV ,我们称 nnn 维向量组 a1,a2,..,ama_1,a_2,..,a_ma1,a2,..,am是 VVV 的一组基,当且仅当 aia_iai 线性无关,而且生成空间为 VVV 。
行列式:det(A)=∑p∈S(n)sgn(p)∏i=1nai.pi
det\left ( A \right )=\sum_{p\in S\left ( n \right )}sgn\left ( p \right )\prod_{i=1}^na_{i.p_i}
det(A)=p∈S(n)∑sgn(p)i=1∏nai.pi
行列式的意义是 nnn 维平行体在经过该线性变换之后对有向体积造成的影响。求解多使用高斯消元,应用广泛,比如说 Matrix−TreeMatrix-TreeMatrix−Tree定理。
几个性质:
性质1:行列互换,行列式不变。
性质2:一数乘行列式的一行就相当于这个数乘此行列式。
性质3:如果行列式中有两行相同,那么行列式为 000 ,所谓两行相同,即两行对应的元素都相等。
性质4:如果行列式中,两行成比例,那么该行列式为 000 。
性质5:把一行的倍数加到另一行,行列式不变。
性质6:对换行列式中两行的位置,行列式反号。
高斯消元:通过初等变换用来求解线性方程组,行列式,矩阵的逆。
求矩阵的逆的两种方法:
1.用伴随矩阵除以矩阵的行列式即可。
2.在矩阵的右边放一个单位矩阵,两者做同步的初等变换,当左边矩阵变为单位矩阵时,右边就是矩阵的逆。如果变不成单位矩阵,说明 r(a)≤nr(a)\leq nr(a)≤n ,也就说明该矩阵的没有逆。
矩阵树定理
无向图
nnn 个点 mmm 条边的一张没有自环的图,保证联通,求生成树个数。
构造一个 n∗nn*nn∗n 的矩阵A,对于 A(i,j)A(i,j)A(i,j) 来说,当 i=ji=ji=j 时,为i点的度数(无向图)。当 i≠ji\not=ji=j 时,存的是 i,ji,ji,j 之间的边数的相反数。
求这个矩阵的任意一阶主子式即可。证明OI中不需要知道.
有向图
求叶向树,把 A(i,i)A(i,i)A(i,i) 改成一个点的入度即可,边数变为有向边数。
求根向树,把 A(i,i)A(i,i)A(i,i) 改成一个点的出度即可,边数变为有向边数。
求以 kkk 为根的生成树个数时,就把第 kkk 行第 kkk 列挖掉即可。
有向图欧拉回路
如果该图是个欧拉图且联通,那么就有:ec(G)=troot(G,k)∏u∈V(deg(u)−1)!
ec(G)=t^{root}(G,k)\prod_{u\in V}(deg(u)-1)!
ec(G)=troot(G,k)u∈V∏(deg(u)−1)!
其中,troot(G,k)t^{root}(G,k)troot(G,k) 表示的是图 GGG 的根向树个数,kkk 为任意一点,deg(u)deg(u)deg(u) 表示出度或入度。
T1
给你 nnn 个数,问有多少个数能被这 nnn 个数中某几个数异或得到。
含明显我们把这 nnn 个数按照二进制高斯消元一下,那么 2r(a)2^{r(a)}2r(a) 就是答案,左上角那个东西就是 aaa 的阶。
T2
给你 nnn 个数, mmm 次询问,每次给出一个,问 xxx 能否被 SSS 的某个子集异或得到;或者加入这个x。
前面那个东西很简单,就直接把 xxx 放进原来的数的基扫一遍就可以。
后面那个东西也是很容易实现的,假若可以被前面的某个自己异或得到那么就直接忽略,因为插不插入无所谓。
否则就把 xxx 插入最高位的那个位置。
T3
一个集合 SSS ,初始为空, mmm 次操作,
每次操作要么给出一个 xxx ,问 xxx 能否被 SSS 的某个子集异或得到;
要么给出给出一个 xxx ,往 SSS 加入这个 xxx 。要么给出一个 xxx ,删除 SSS 中的 xxx 。
其实这个分两种做法:
如果可以离线:我们每个基向量记录一下它的删除时间(这个删除时间指的是插入时初始的 xxx 的删除时间)。
在 xxx 插入的时候比较,如果 xxx 的当前位为 111 ,就比较一下 xxx 的删除时间和当前位置的基变量的删除时间。
如果 xxx 的删除时间 >>> 当前位置的删除时间,那么就把两者交换,继续拿新的 xxx 往下继续操作。
证明:
可以看到,与 xxx 比较删除时间的那些位置在被遍历过之后的删除时间肯定时单调下降的。
而假如要判断的 xxx 要经过这个基向量,如果那个基向量的删除时间 <<< 当前时间,那么这一位就一定不存在一个 ≥\geq≥ 当前时间的基向量存在。
所以我们判断一个东西是否在线性空间的时候,我们可以遍历那些删除时间 ≥\geq≥ 当前时间的基向量就好了。
那么复杂度就是 O(mL2ω)O(\frac {mL^2} {\omega})O(ωmL2) 。
如果要求强制在线:实际上线性基是支持删除的。
对于每一个基向量和零向量都保存它是由哪些向量异或得到的。
当删除向量 xxx 时,查找零向量中是否存在包含 xxx 的,如果有包含 xxx 的零向量,那么说明 xxx 能被其它向量异或得到的。对线性基没有影响。
否则的话,我们找到基向量里位最低的包含 xxx 的,将它所保存的信息异或到其他包含 xxx 的基向量里面就好了。
这个信息包括了是由哪些向量异或得到的和向量本身。
时间复杂度:O(m[(Y)+L2/ω])O(m[\left ( Y \right )+L^2/\omega])O(m[(Y)+L2/ω]),其中 YYY 为插入总数。
下面面又是几个定义
特征多项式
特征多项式:对于一个 nnn 阶矩阵 AAA ,如果存在标量 www 和非零向量 vvv ,使得 Av=wvAv=wvAv=wv ,则 www 称为 AAA 的一个特征值, vvv 为 AAA 的一个特征向量,其中 vvv 是一个列向量。
如果 www 是A的一个特征值,即 Av−wv=0Av-wv=0Av−wv=0 存在非零解。
即 (A−wI)v=0(A-wI)v=0(A−wI)v=0 有非零解。
这个矩阵乘向量的形式像一个齐次线性方程组的形式,当 r(A−wI)<nr(A-wI)<nr(A−wI)<n 时, vvv 有非零解。
所以 ∣A−wI∣=0|A-wI|=0∣A−wI∣=0。
我们把这个标量看成一个变量 xxx , ∣A−wI∣|A-wI|∣A−wI∣ 就是一个多项式,结果为 000 。这个多项式就被称为特征多项式。
同时,不仅可以将值代进这个多项式,还可以将矩阵代入这个多项式。
特别的,如果我们将原矩阵 AAA 代入这个多项式,得到的是 000 矩阵。
这个是哈密尔顿–凯莱定理。
用这个东西来求解齐次线性递推式可以做到 O(klogklogn)O(k\log k\log n)O(klogklogn) 。
首先因为这个矩阵比较特殊,特征多项式可以直接手推得到,要求的相当于 AnA^nAn的最后一项 ,由于特征多项式是化零多项式,所以我们直接用 xxx 来代替 AAA ,进行倍增和多项式取模即可,时间复杂度可以做到 O(klogklogn)O(k \log k\log n)O(klogklogn),如果只要求求出矩阵快速幂,那么也有 O(klogklogn+k4)O(k\log k\log n+k^4)O(klogklogn+k4)的优秀复杂度,在某些情况下比原先的 O(k3logn)O(k^3\log n)O(k3logn) 要优。
本文深入探讨线性代数的基本概念,如线性组合、向量空间、生成空间、线性相关与无关、基以及行列式。介绍了行列式的性质和在求解线性方程组、矩阵逆中的应用。同时,阐述了矩阵树定理在无向图和有向图中的作用,以及如何利用高斯消元解决相关问题。此外,讨论了特征多项式在求解齐次线性递推式中的高效算法。内容涵盖信息技术领域的矩阵运算、图论和线性代数理论。
838

被折叠的 条评论
为什么被折叠?



