符号规定 
P ( n ) P(n) P ( n ) n n n σ ( p ) \sigma(p) σ ( p ) p p p p − 1 p^{-1} p − 1 p p p p p i − 1 = i p^{-1}_{p_i}=i p p i  − 1  = i A T A^T A T A A A [ n ] [n] [ n ] { 1 , 2 , 3 , … , n } \{1,2,3,\dots,n\} { 1 , 2 , 3 , … , n } ( [ n ] m ) \binom{[n]}{m} ( m [ n ]  ) { 1 , 2 , 3 , … , n } \{1,2,3,\dots,n\} { 1 , 2 , 3 , … , n } m m m  
行列式 
对于一个 n × n n\times n n × n A A A 
∣ A ∣ = ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n A i , p i |A|=\sum\limits_{p\in P(n)} (-1)^{\sigma(p)}\prod\limits_{i=1}^n A_{i,p_i}
 ∣ A ∣ = p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  A i , p i   
非方阵的行列式为 0 0 0 
几何意义:线性变换后”体积“的变化量,即原先 1 1 1 ∣ A ∣ |A| ∣ A ∣ 
 
行列式的基本性质 & 高斯消元求解 
若 A A A ∣ A ∣ = 0 |A|=0 ∣ A ∣ = 0 
证明 
考虑行列式的几何意义,若 A A A 0 0 0 
 
 
∣ A T ∣ = ∣ A ∣ |A^T|=|A| ∣ A T ∣ = ∣ A ∣ 
 
对于 A A A k k k ∣ A ∣ |A| ∣ A ∣ k k k 
 
对于 A A A ∣ A ∣ |A| ∣ A ∣ − ∣ A ∣ -|A| − ∣ A ∣ 
证明 
相当于证明交换排列 p p p 
不难发现交换 p i p_i p i  p i + 1 p_{i+1} p i + 1  p i p_i p i  p j p_j p j  i < j i<j i < j p i p_i p i  p j p_{j} p j  p j p_j p j  p i p_i p i  
第一步交换总共需要 j − i j-i j − i j − i − 1 j-i-1 j − i − 1 2 ( j − i ) − 1 2(j-i)-1 2 ( j − i ) − 1 
 
 
对于 A A A k k k ∣ A ∣ |A| ∣ A ∣ 
证明 
记新的方阵为 A ′ A' A ′ i i i j j j 
考虑乘法分配律,将被加的行拆开,则 ∣ A ′ ∣ = ∣ A ∣ + k ∣ B ∣ |A'|=|A|+k|B| ∣ A ′ ∣ = ∣ A ∣ + k ∣ B ∣ B B B j j j i i i B B B ∣ B ∣ = 0 |B|=0 ∣ B ∣ = 0 
 
 
 
那么根据这些基本性质,可以使用高斯消元将方阵的下半消成全 0 0 0 ∀ j < i , A i , j = 0 \forall j<i,A_{i,j}=0 ∀ j < i , A i , j  = 0 
这样显然 ∣ A ∣ = ∏ i = 1 n A i , i |A|=\prod\limits_{i=1}^n A_{i,i} ∣ A ∣ = i = 1 ∏ n  A i , i  i i i A i , p i = 0 A_{i,p_i}=0 A i , p i   = 0 
当然将上半消成全 0 0 0 
交换两行的时候别忘了变号,时间复杂度 O ( n 3 ) O(n^3) O ( n 3 ) 
参考代码 
inline int gauss(int n)
{
	int res=1;
	for(int i=1;i<=n;i++)
	{
		if(a[i][i]==0)
		{
			bool f=false;
			for(int j=i+1;j<=n;j++)
			{
				if(a[j][i]==0) continue;
				f=true;
				for(int k=1;k<=n;k++) swap(a[i][k],a[j][k]);
				break;
			}
			if(!f) return 0;
			res=p-res;
		}
		res=1ll*res*a[i][i]%p;
		for(int j=i+1;j<=n;j++)
		{
			if(a[j][i]==0) continue;
			int ml=1ll*a[j][i]*qpow(a[i][i],p-2)%p;
			for(int k=1;k<=n;k++) add(a[j][k],p-1ll*ml*a[i][k]%p);
		}
	}
	return res;
}
Cauchy-Binet 定理 
设 A A A n × m n\times m n × m B B B m × n m\times n m × n 
∣ A B ∣ = { 0 m < n ∑ S ∈ ( [ m ] n ) ∣ A [ n ] , S ∣ × ∣ B S , [ n ] ∣ m ≥ n |AB|=\begin{cases}
0&m<n\\
\sum\limits_{S\in \binom{[m]}{n}} |A_{[n],S}|\times |B_{S,[n]}| &m\ge n 
\end{cases}
 ∣ A B ∣ = ⎩ ⎪ ⎨ ⎪ ⎧  0 S ∈ ( n [ m ]  ) ∑  ∣ A [ n ] , S  ∣ × ∣ B S , [ n ]  ∣  m < n m ≥ n  
第二条的意思是,枚举 { 1 , 2 , 3 , … , m } \{1,2,3,\dots,m\} { 1 , 2 , 3 , … , m } n n n S S S 1 ≤ i ≤ n , j ∈ S 1\le i\le n,j\in S 1 ≤ i ≤ n , j ∈ S A i , j A_{i,j} A i , j  A [ n ] , S A_{[n],S} A [ n ] , S  B S , [ n ] B_{S,[n]} B S , [ n ]  
 
证明 
考虑矩阵乘法的本质,有:
∣ A B ∣ = ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n ( A B ) i , p i = ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n ∑ j = 1 m A i , j × B j , p i = ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∑ j 1 = 1 m ∑ j 2 = 1 m ∑ j 3 = 1 m ⋯ ∑ j n = 1 m ∏ i = 1 n A i , j i × B j i , p i (应用乘法分配律) = ∑ j 1 = 1 m ∑ j 2 = 1 m ∑ j 3 = 1 m ⋯ ∑ j n = 1 m ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n A i , j i ∏ i = 1 n B j i , p i = ∑ j 1 = 1 m ∑ j 2 = 1 m ∑ j 3 = 1 m ⋯ ∑ j n = 1 m ( ∏ i = 1 n A i , j i ) ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n B j i , p i \begin{aligned}
|AB|&=\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^{n}(AB)_{i,p_i}\\
&=\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^{n}\sum\limits_{j=1}^m A_{i,j}\times B_{j,p_i}\\
&=\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\sum\limits_{j_1=1}^m\sum\limits_{j_2=1}^m\sum\limits_{j_3=1}^m\dots \sum\limits_{j_n=1}^m\prod\limits_{i=1}^{n}A_{i,j_i}\times B_{j_i,p_i}\qquad \text{(应用乘法分配律)}\\
&=\sum\limits_{j_1=1}^m\sum\limits_{j_2=1}^m\sum\limits_{j_3=1}^m\dots \sum\limits_{j_n=1}^m\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^{n}A_{i,j_i}\prod\limits_{i=1}^nB_{j_i,p_i}\\
&=\sum\limits_{j_1=1}^m\sum\limits_{j_2=1}^m\sum\limits_{j_3=1}^m\dots \sum\limits_{j_n=1}^m\left(\prod\limits_{i=1}^{n}A_{i,j_i}\right)\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^nB_{j_i,p_i}\\
\end{aligned}
 ∣ A B ∣  = p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  ( A B ) i , p i   = p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  j = 1 ∑ m  A i , j  × B j , p i   = p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) j 1  = 1 ∑ m  j 2  = 1 ∑ m  j 3  = 1 ∑ m  ⋯ j n  = 1 ∑ m  i = 1 ∏ n  A i , j i   × B j i  , p i   ( 应用乘法分配律 ) = j 1  = 1 ∑ m  j 2  = 1 ∑ m  j 3  = 1 ∑ m  ⋯ j n  = 1 ∑ m  p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  A i , j i   i = 1 ∏ n  B j i  , p i   = j 1  = 1 ∑ m  j 2  = 1 ∑ m  j 3  = 1 ∑ m  ⋯ j n  = 1 ∑ m  ( i = 1 ∏ n  A i , j i   ) p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  B j i  , p i    
注意到 ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n B j i , p i \sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^nB_{j_i,p_i} p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  B j i  , p i   ∣ B { j i } , [ n ] ∣ |B_{\{j_i\},[n]}| ∣ B { j i  } , [ n ]  ∣ j i j_i j i  0 0 0 
∣ A B ∣ = ∑ S ∈ ( [ m ] n ) ∑ q ∈ P ( n ) ( ∏ i = 1 n A i , S q i ) ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n B S q i , p i = ∑ S ∈ ( [ m ] n ) ∑ q ∈ P ( n ) ( ∏ i = 1 n A i , S q i ) ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n B S i , q p i − 1 = ∑ S ∈ ( [ m ] n ) ∑ q ∈ P ( n ) ( ∏ i = 1 n A i , S q i ) ∑ p ∈ P ( n ) ( − 1 ) σ ( q − 1 ) ( − 1 ) σ ( p ) ∏ i = 1 n B S i , p i = ∑ S ∈ ( [ m ] n ) ( ∑ q ∈ P ( n ) ( − 1 ) σ ( q ) ∏ i = 1 n A i , S q i ) ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n B S i , p i = ∑ S ∈ ( [ m ] n ) ∣ A [ n ] , S ∣ × ∣ B S , [ n ] ∣ \begin{aligned}
|AB|&=\sum\limits_{S\in\binom{[m]}{n}}\sum\limits_{q\in P(n)}\left(\prod\limits_{i=1}^{n}A_{i,S_{q_i}}\right)\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^nB_{S_{q_i},p_i}\\
&=\sum\limits_{S\in\binom{[m]}{n}}\sum\limits_{q\in P(n)}\left(\prod\limits_{i=1}^{n}A_{i,S_{q_i}}\right)\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^nB_{S_i,q^{-1}_{p_i}}\\
&=\sum\limits_{S\in\binom{[m]}{n}}\sum\limits_{q\in P(n)}\left(\prod\limits_{i=1}^{n}A_{i,S_{q_i}}\right)\sum\limits_{p\in P(n)}(-1)^{\sigma(q^{-1})}(-1)^{\sigma(p)}\prod\limits_{i=1}^nB_{S_i,p_i}\\
&=\sum\limits_{S\in\binom{[m]}{n}}\left(\sum\limits_{q\in P(n)}(-1)^{\sigma(q)}\prod\limits_{i=1}^{n}A_{i,S_{q_i}}\right)\sum\limits_{p\in P(n)}(-1)^{\sigma(p)}\prod\limits_{i=1}^nB_{S_i,p_i}\\
&=\sum\limits_{S\in \binom{[m]}{n}} |A_{[n],S}|\times |B_{S,[n]}|
\end{aligned}
 ∣ A B ∣  = S ∈ ( n [ m ]  ) ∑  q ∈ P ( n ) ∑  ( i = 1 ∏ n  A i , S q i    ) p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  B S q i   , p i   = S ∈ ( n [ m ]  ) ∑  q ∈ P ( n ) ∑  ( i = 1 ∏ n  A i , S q i    ) p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  B S i  , q p i  − 1   = S ∈ ( n [ m ]  ) ∑  q ∈ P ( n ) ∑  ( i = 1 ∏ n  A i , S q i    ) p ∈ P ( n ) ∑  ( − 1 ) σ ( q − 1 ) ( − 1 ) σ ( p ) i = 1 ∏ n  B S i  , p i   = S ∈ ( n [ m ]  ) ∑  ⎝ ⎛  q ∈ P ( n ) ∑  ( − 1 ) σ ( q ) i = 1 ∏ n  A i , S q i    ⎠ ⎞  p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  B S i  , p i   = S ∈ ( n [ m ]  ) ∑  ∣ A [ n ] , S  ∣ × ∣ B S , [ n ]  ∣  
 
例题:
LGV 引理 
对于一个带权 DAG G G G 
对于一条路径 p p p w p w_{p} w p  
 
对于两个点 u , v u,v u , v e u , v e_{u,v} e u , v  u → v u\to v u → v p p p w p w_p w p  e u , v = ∑ p ∈ { u → v } w p e_{u,v}=\sum\limits_{p\in\{u\to v\}} w_p e u , v  = p ∈ { u → v } ∑  w p  
 
一组由起点集合 A A A B B B ∣ A ∣ = ∣ B ∣ |A|=|B| ∣ A ∣ = ∣ B ∣ ( S , p i ) (S,p_i) ( S , p i  ) 
∣ S ∣ = ∣ A ∣ |S|=|A| ∣ S ∣ = ∣ A ∣ S i S_i S i  A i A_i A i  B p i B_{p_i} B p i   p ∈ P ( ∣ A ∣ ) p\in P(|A|) p ∈ P ( ∣ A ∣ ) ∀ i  = j \forall i\not=j ∀ i   = j S i S_i S i  S j S_j S j  
 
 
LGV 引理指出:
∣ [ e A 1 , B 1 e A 1 , B 2 … e A 1 , B n e A 2 , B 1 e A 2 , B 2 … e A 2 , B n ⋮ ⋮ ⋱ ⋮ e A n , B 1 e A n , B 2 … e A n , B n ] ∣ = ∑ ( S , p ) ( − 1 ) σ ( p ) ∏ i = 1 ∣ A ∣ w S i \left|\begin{bmatrix}
e_{A_1,B_1}&e_{A_1,B_2}&\dots&e_{A_1,B_n}\\
e_{A_2,B_1}&e_{A_2,B_2}&\dots&e_{A_2,B_n}\\
\vdots&\vdots&\ddots&\vdots\\
e_{A_n,B_1}&e_{A_n,B_2}&\dots&e_{A_n,B_n}
\end{bmatrix}\right|=\sum\limits_{(S,p)}(-1)^{\sigma(p)}\prod\limits_{i=1}^{|A|} w_{S_i}
 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣  ⎣ ⎢ ⎢ ⎢ ⎡  e A 1  , B 1   e A 2  , B 1   ⋮ e A n  , B 1    e A 1  , B 2   e A 2  , B 2   ⋮ e A n  , B 2    … … ⋱ …  e A 1  , B n   e A 2  , B n   ⋮ e A n  , B n    ⎦ ⎥ ⎥ ⎥ ⎤  ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣  = ( S , p ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ ∣ A ∣  w S i   
 
证明 
考虑行列式的定义,设等号左边的矩阵为 C C C ∣ A ∣ = n |A|=n ∣ A ∣ = n 
∣ C ∣ = ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n e A i , B p i = ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∏ i = 1 n ∑ q ∈ { A i → B p i } w q = ∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∑ q 1 ∈ { A 1 → B p 1 } ∑ q 2 ∈ { A 2 → B p 2 } ⋯ ∑ q n ∈ { A n → B p n } ∏ i = 1 n w q i \begin{aligned}
|C|&=\sum\limits_{p\in P(n)}\limits (-1)^{\sigma(p)} \prod \limits_{i=1}^n e_{A_i,B_{p_i}}\\
&=\sum\limits_{p\in P(n)}\limits (-1)^{\sigma(p)} \prod \limits_{i=1}^n \sum\limits_{q\in \{A_i\to B_{p_i}\}}w_q\\
&=\sum\limits_{p\in P(n)}\limits (-1)^{\sigma(p)}\sum\limits_{q_1\in \{A_1\to B_{p_1}\}}\sum\limits_{q_2\in \{A_2\to B_{p_2}\}}\dots \sum\limits_{q_n\in\{A_n\to B_{p_n}\}}\prod\limits_{i=1}^n w_{q_i}\\
\end{aligned}
 ∣ C ∣  = p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  e A i  , B p i    = p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ n  q ∈ { A i  → B p i   } ∑  w q  = p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) q 1  ∈ { A 1  → B p 1   } ∑  q 2  ∈ { A 2  → B p 2   } ∑  ⋯ q n  ∈ { A n  → B p n   } ∑  i = 1 ∏ n  w q i    
不难发现,由于 w q i w_{q_i} w q i   ∏ i = 1 n w q i \prod\limits_{i=1}^n w_{q_i} i = 1 ∏ n  w q i   q [ 1 , n ] q_{[1,n]} q [ 1 , n ]  
此时若 q i q_i q i  q j q_j q j  σ ( p ) \sigma(p) σ ( p ) ∏ i = 1 n w q i \prod\limits_{i=1}^n w_{q_i} i = 1 ∏ n  w q i   q [ 1 , n ] q_{[1,n]} q [ 1 , n ]  
∑ p ∈ P ( n ) ( − 1 ) σ ( p ) ∑ q 1 ∈ { A 1 → B p 1 } ∑ q 2 ∈ { A 2 → B p 2 } ⋯ ∑ q n ∈ { A n → B p n } ∏ i = 1 n w q i = ∑ ( S , p ) ( − 1 ) σ ( p ) ∏ i = 1 ∣ A ∣ w S i \sum\limits_{p\in P(n)}\limits (-1)^{\sigma(p)}\sum\limits_{q_1\in \{A_1\to B_{p_1}\}}\sum\limits_{q_2\in \{A_2\to B_{p_2}\}}\dots \sum\limits_{q_n\in\{A_n\to B_{p_n}\}}\prod\limits_{i=1}^n w_{q_i}=\sum\limits_{(S,p)}(-1)^{\sigma(p)}\prod\limits_{i=1}^{|A|} w_{S_i}
 p ∈ P ( n ) ∑  ( − 1 ) σ ( p ) q 1  ∈ { A 1  → B p 1   } ∑  q 2  ∈ { A 2  → B p 2   } ∑  ⋯ q n  ∈ { A n  → B p n   } ∑  i = 1 ∏ n  w q i   = ( S , p ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ ∣ A ∣  w S i   
 
应用:求不交路径数量 
LGV 引理还可以求出从起点集合 A A A B B B k k k S S S 
∣ S ∣ = k |S|=k ∣ S ∣ = k S S S A A A B B B S S S  
也可以看成将每个点拆成入点和出点之后的最大流。
先来考虑怎么判定其满流,即 ∣ A ∣ = ∣ B ∣ |A|=|B| ∣ A ∣ = ∣ B ∣ k = ∣ A ∣ k=|A| k = ∣ A ∣ ∑ ( S , p ) ∏ i = 1 ∣ A ∣ w S i \sum\limits_{(S,p)}\prod\limits_{i=1}^{|A|} w_{S_i} ( S , p ) ∑  i = 1 ∏ ∣ A ∣  w S i   0 0 0 
但这是积和式,是个 NP 问题。
所以不妨考虑行列式 ∑ ( S , p ) ( − 1 ) σ ( p ) ∏ i = 1 ∣ A ∣ w S i \sum\limits_{(S,p)}(-1)^{\sigma(p)}\prod\limits_{i=1}^{|A|} w_{S_i} ( S , p ) ∑  ( − 1 ) σ ( p ) i = 1 ∏ ∣ A ∣  w S i   ( − 1 ) σ ( p ) (-1)^{\sigma(p)} ( − 1 ) σ ( p ) Schwartz-Zippel 定理 ,不妨为每条边随机赋一个权值,这样行列式就是 n n n n n n mod  p \text{mod }p mod  p n p \frac{n}{p} p n  
回到原问题,不难发现在随机赋权后就相当于要找到最大的 k k k A A A k k k A A A 
另外,该方法还可以求正常的流量全为 1 1 1 
该方法复杂度是 O ( min  ( ∣ A ∣ , ∣ B ∣ ) 2 × max  ( ∣ A ∣ , ∣ B ∣ ) ) O(\min(|A|,|B|)^2\times \max(|A|,|B|)) O ( min ( ∣ A ∣ , ∣ B ∣ ) 2 × max ( ∣ A ∣ , ∣ B ∣ ) ) A A A B B B 
例题:
矩阵树定理 
对于 n n n G G G i i i d i d_i d i  n × n n\times n n × n A A A 
A i , j = { d i i = j − 1 i  = j , ( i , j ) ∈ G 0 o t h e r w i s e A_{i,j}=\begin{cases}d_i& i=j\\-1&i\not=j,(i,j)\in G\\0&otherwise\end{cases} A i , j  = ⎩ ⎪ ⎨ ⎪ ⎧  d i  − 1 0  i = j i   = j , ( i , j ) ∈ G o t h e r w i s e  
设 M i , j M_{i,j} M i , j  A A A i i i j j j ( n − 1 ) × ( n − 1 ) (n-1)\times (n-1) ( n − 1 ) × ( n − 1 ) G G G ∣ M i , i ∣ |M_{i,i}| ∣ M i , i  ∣ 1 ≤ i ≤ n 1\le i\le n 1 ≤ i ≤ n 
 
证明 
设 G G G m m m ( u i , v i ) (u_i,v_i) ( u i  , v i  ) n × m n\times m n × m E E E 
∀ 1 ≤ i ≤ m \forall 1\le i\le m ∀ 1 ≤ i ≤ m E i , u i = 1 , E i , v i = − 1 E_{i,u_i}=1,E_{i,v_i}=-1 E i , u i   = 1 , E i , v i   = − 1 其它位置 E i , j = 0 E_{i,j}=0 E i , j  = 0  
 
u i u_i u i  v i v_i v i  1 1 1 − 1 -1 − 1 
不难发现 A = E × E T A=E\times E^T A = E × E T F i F_i F i  E E E i i i M i , i = F i × F i T M_{i,i}=F_i\times F^T_i M i , i  = F i  × F i T  
那么根据 Cauchy-Binet 定理,有:
∣ M i , i ∣ = ∣ F i × F i T ∣ = ∑ S ∈ ( [ m ] n − 1 ) ∣ ( F i ) [ n − 1 ] , S ∣ × ∣ ( F i T ) S , [ n − 1 ] ∣ = ∑ S ∈ ( [ m ] n − 1 ) ∣ ( F i ) [ n − 1 ] , S ∣ × ∣ ( F i ) S , [ n − 1 ] T ∣ = ∑ S ∈ ( [ m ] n − 1 ) ∣ ( F i ) [ n − 1 ] , S ∣ 2 \begin{aligned}
|M_{i,i}|&=|F_i\times F_i^T|\\
&=\sum\limits_{S\in\binom{[m]}{n-1}} |(F_i)_{[n-1],S}|\times |(F^T_i)_{S,[n-1]}|\\
&=\sum\limits_{S\in\binom{[m]}{n-1}} |(F_i)_{[n-1],S}|\times |(F_i)_{S,[n-1]}^T|\\
&=\sum\limits_{S\in\binom{[m]}{n-1}} |(F_i)_{[n-1],S}|^2\\
\end{aligned}
 ∣ M i , i  ∣  = ∣ F i  × F i T  ∣ = S ∈ ( n − 1 [ m ]  ) ∑  ∣ ( F i  ) [ n − 1 ] , S  ∣ × ∣ ( F i T  ) S , [ n − 1 ]  ∣ = S ∈ ( n − 1 [ m ]  ) ∑  ∣ ( F i  ) [ n − 1 ] , S  ∣ × ∣ ( F i  ) S , [ n − 1 ] T  ∣ = S ∈ ( n − 1 [ m ]  ) ∑  ∣ ( F i  ) [ n − 1 ] , S  ∣ 2  
注意到,S S S m m m n − 1 n-1 n − 1 S S S ∣ ( F i ) [ n − 1 ] , S ∣ = ± 1 |(F_i)_{[n-1],S}|=\pm 1 ∣ ( F i  ) [ n − 1 ] , S  ∣ = ± 1 ∣ ( F i ) [ n − 1 ] , S ∣ = 0 |(F_i)_{[n-1],S}|=0 ∣ ( F i  ) [ n − 1 ] , S  ∣ = 0 
不妨设 Q = F 1 Q=F_1 Q = F 1  Q Q Q 
不难发现,若 S S S C ∈ S C\in S C ∈ S C 1 C_1 C 1  C > 1 C_{>1} C > 1  1 1 1 − 1 -1 − 1 Q [ n − 1 ] , S Q_{[n-1],S} Q [ n − 1 ] , S  0 0 0 
并且这一条件显然是充要的,因为若没有环则任意一条链两端的点都无法被消去。
接下来证明 ∣ Q ∣ ∈ { − 1 , 0 , 1 } |Q|\in\{-1,0,1\} ∣ Q ∣ ∈ { − 1 , 0 , 1 } ∣ Q ∣ |Q| ∣ Q ∣ S S S n − 1 n-1 n − 1 
由于第 1 1 1 u i = 1 u_i=1 u i  = 1 v i v_i v i  1 1 1 ∣ Q ∣ ∈ { − 1 , 1 } |Q|\in\{-1,1\} ∣ Q ∣ ∈ { − 1 , 1 } 
那么 Q Q Q F i F_i F i  i  = 1 i\not =1 i   = 1 
 
拓展形式:
无向带边权 w ( i , j ) w_{(i,j)} w ( i , j )  
A i , j = { ∑ ( i , v ) ∈ G w ( i , v ) i = j − w ( i , j ) i  = j , ( i , j ) ∈ G 0 o t h e r w i s e A_{i,j}=\begin{cases}\sum\limits_{(i,v)\in G} w_{(i,v)}& i=j\\-w_{(i,j)}&i\not=j,(i,j)\in G\\0&otherwise\end{cases} A i , j  = ⎩ ⎪ ⎪ ⎨ ⎪ ⎪ ⎧  ( i , v ) ∈ G ∑  w ( i , v )  − w ( i , j )  0  i = j i   = j , ( i , j ) ∈ G o t h e r w i s e  
证明仅需将 E E E w ( i , j ) \sqrt{w_{(i,j)}} w ( i , j )   − w ( i , j ) -\sqrt{w_{(i,j)}} − w ( i , j )   
 
有向带边权:
根向树,根为 r r r 
A i , j = { ∑ i → v ∈ G w i → v i = j − w i → j i  = j , i → j ∈ G 0 o t h e r w i s e A_{i,j}=\begin{cases}\sum\limits_{i\to v\in G} w_{i\to v}&i=j\\
-w_{i\to j}&i\not=j,i\to j\in G\\
0&otherwise\end{cases}
 A i , j  = ⎩ ⎪ ⎪ ⎨ ⎪ ⎪ ⎧  i → v ∈ G ∑  w i → v  − w i → j  0  i = j i   = j , i → j ∈ G o t h e r w i s e  
根向树边权积的和为 ∣ M r , r ∣ |M_{r,r}| ∣ M r , r  ∣ 
证明和无向图情况类似,改变一下 E E E 
( E o u t ) i , j = { w e j e j = i → x 0 o t h e r w i s e (E_{out})_{i,j}=\begin{cases}\sqrt{w_{e_j}}&e_j=i\to x\\0&otherwise\end{cases} ( E o u t  ) i , j  = { w e j    0  e j  = i → x o t h e r w i s e  ( E i n ) i , j = { w e j e j = x → i 0 o t h e r w i s e (E_{in})_{i,j}=\begin{cases}\sqrt{w_{e_j}}&e_j=x\to i\\0&otherwise\end{cases} ( E i n  ) i , j  = { w e j    0  e j  = x → i o t h e r w i s e   
则有 A = E o u t × ( E o u t − E i n ) T A=E_{out}\times (E_{out}-E_{in})^T A = E o u t  × ( E o u t  − E i n  ) T 
 
叶向树,根为 r r r 
A i , j = { ∑ v → i ∈ G w v → i i = j − w i → j i  = j , i → j ∈ G 0 o t h e r w i s e A_{i,j}=\begin{cases}\sum\limits_{v\to i\in G} w_{v\to i}&i=j\\
-w_{i\to j}&i\not=j,i\to j\in G\\
0&otherwise\end{cases}
 A i , j  = ⎩ ⎪ ⎪ ⎨ ⎪ ⎪ ⎧  v → i ∈ G ∑  w v → i  − w i → j  0  i = j i   = j , i → j ∈ G o t h e r w i s e  
叶向树边权积的和为 ∣ M r , r ∣ |M_{r,r}| ∣ M r , r  ∣ 
 
 
 
 
边权只要在同一个域下就行了,例如可以是多项式。
 
应用:最小生成树计数 
考虑 Kruskal 的过程,每次把边权最小的边加入图中,对每个联通块求出生成树个数,然后将整个连通块缩点即可。
例题:
应用:复杂边权 
注意到矩阵树定理做的实际上是:
∑ T [ T  is a tree ] ∏ e ∈ T w e \sum\limits_{T}[T\text{ is a tree}]\prod\limits_{e\in T} w_e
 T ∑  [ T  is a tree ] e ∈ T ∏  w e  
那么边权不一定要是数,只要可以在其上定义加法和乘法即可(是个环)。
例如边权可以是多项式、集合幂级数,只需要先做一遍 DFT/FWT 求出点值,再对每个点值分别跑矩阵树,最后合并起来跑 IDFT/IFWT 即可。
例题:
BEST 定理 
对于一个存在欧拉回路 的有向图 G G G s s s 
T ( s ) × d s ! × ∏ u  = s ( d u − 1 ) ! T(s)\times d_s!\times \prod\limits_{u\not=s} (d_u-1)!
 T ( s ) × d s  ! × u   = s ∏  ( d u  − 1 ) ! 
其中 T ( s ) T(s) T ( s ) G G G s s s d u d_u d u  u u u 
而 G G G 
T ( 1 ) × ∏ u ( d u − 1 ) ! T(1)\times \prod\limits_{u}(d_u-1)!
 T ( 1 ) × u ∏  ( d u  − 1 ) ! 
 
证明 
先证第一条。
考察除去 s s s s s s 
由此我们构建了一个从欧拉回路到根向树的映射。
而不难发现,由于欧拉回路存在的充要条件是弱联通且每个点度数为偶数,则除去根向树外,每个点的出边可以任意确定走的次序。这是因为无论怎么走,根向树的树边总是最后一个删掉的,图必定一直弱联通,而度数的条件更不用说了。
对于起点 s s s − 1 -1 − 1 
第二条也是同理,先计算出从 1 1 1 1 1 1 d 1 d_1 d 1  d 1 d_1 d 1  d 1 d_1 d 1