各种数学学习笔记
2021.3.15
行列式的计算
行列式的一些性质
- 将行列式任意两行交换,\(\det(A^\prime)=-\det(A)\)
- 将行列式任意一行全乘上 \(k\),\(\det(A^\prime)=k\det(A)\)
- 将行列式任意一行减去另一行的 \(k\) 倍,\(\det(A^\prime)=\det(A)\)
- 三角矩阵的行列式为对角线上所有数的乘积
结合这些性质,可以高斯消元消成一个上三角矩阵,期间记录符号
最后计算即可
Matrix-Tree 定理
背结论就好。。。
无向图生成树计数:令 \(A\) 为邻接矩阵,\(D\) 为度数矩阵(\(D_{i,i}=deg_i\),其他地方为 0),\(K=D-A\),\(K^\prime\) 为 \(K\) 删掉任意一行一列的值,答案为 \(\det(K^\prime)\)
无向图带边权生成树乘积求和:把 \(A\) 换成边权邻接矩阵,把 \(D\) 变成所有连边的权值和即可
有向图内向生成树计数:令 \(A\) 为邻接矩阵,\(D\) 为出度矩阵(\(D_{i,i}=oudeg_i\),其他地方为 0),\(K=D-A\),\(K^\prime\) 为 \(K\) 删掉根所在的那一行那一列的值,答案为 \(\det(K^\prime)\)
有向图外向生成树计数:令 \(A\) 为邻接矩阵,\(D\) 为入度矩阵(\(D_{i,i}=indeg_i\),其他地方为 0),\(K=D-A\),\(K^\prime\) 为 \(K\) 删掉根所在的那一行那一列的值,答案为 \(\det(K^\prime)\)
有向图带边权生成树乘积求和:同样把矩阵带上边权即可
考虑如果是生成树边权和求和,我们只需要把矩阵的每个点维护成一个多项式,最后查询1次项系数即为答案。
所以在 \(\bmod x^2\) 的意义下搞这个,同样可以保证复杂度,每次计算都是 \(\mathcal O(1)\) 的
这种的例题是 P6624 [省选联考 2020 A 卷] 作业题
首先前面要转化一下式子,根据欧拉函数反演 \(n=\sum_{d|n}\phi(d)\)
原来的式子可以转化成
考虑枚举 \(d\),即
然后按上面的方法做即可
莫比乌斯反演
对于 \(f(n),F(n)\),如果
那么有
证明的话把 \(\mu(d)\) 提到前面来,然后交换求和顺序,根据 \(\mu\) 的性质 \(\sum_{d|n}\mu(d)=[n=1]\) 即可证明
用到的一些结论: