定义
LGV 引理全称为 Lindström–Gessel–Viennot lemma,适用于有向无环图。
令 ω(Q)=∏(x→y)∈QW(x,y),其中 Q 为有向无环图中的一条路径,W(x,y) 表示 x→y 这条边上的边权,对于没有边权的计数类问题 W(x,y) 可以设置为 x→y 中重边的数量。也就是说,ω(Q) 的值为路径 Q 中所有边权的积。
令 e(x,y)=∑Q:(x→y)ω(Q),也就是所有起点为 x 终点为 y 的路径 Q 的 ω(Q) 的和。如果边权为重边的个数,那么 e(x,y) 表示的就是从 x 到 y 之间的所有路径数。
定义起点集合 A={a1,a2,⋯,an},终点集合 B={b1,b2,⋯,bn}。
路径 Pi 表示从 ai 到 bσi 的路径,其中 σ 为一个 1 到 n 的排列。
定义 ω(P)=∏i=1nω(Pi),也就是该路径组考虑重边情况下的方案数。
定义 τ(σ) 表示排列 σ 的逆序对个数,τ(P)=∑τ(Pi) 也就是涉及的所有的 τ(σ) 的和。
记矩阵M,其意义如下:
M=⎣⎢⎢⎢⎡e(a1,b1)e(a2,b1)⋮e(an,b1)e(a1,b2)e(a2,b2)⋮e(an,b2)⋯⋯⋱⋯e(a1,bn)e(a2,bn)⋮e(an,bn)⎦⎥⎥⎥⎤
则 det(M)=∑P(−1)τ(P)ω(Pi),其中 P 为不含公共点的路径组。
根据 LGV 引理的内容,此时的 det(M) 的值为路径组 P 中所有的不相交的路径的方案数。
当边权为重边个数时,det(M) 意义为逆序对为偶数的不相交路径组数减逆序对为奇数的不相交路径组数。
证明
将上方的式子展开:
det(M)=P∑(−1)τ(P)ω(Pi)
得到一个新式子:
det(M)=σ∑(−1)τ(P)i=1∏nP:ai→bi∑ω(P)
通过观察容易得到:
i=1∏nP:ai→bi∑ω(P)=P:A→B∑ω(P)
那么将其带回原式得到:
det(M)=P:A→B∑(−1)τ(P)ω(P)
观察易得此时的 det(M) 表示的所有路径组方案数的带符号和。
将 P 划分为两个部分 U 和 V 分别表示不相交的路径和相交的路径,那么可以将原式再次变形:
det(M)=U:A→B∑(−1)τ(U)ω(U)+V:A→B∑(−1)τ(V)ω(V)
所以实际上定理说明的是 ∑V:A→B(−1)τ(V)ω(V)=0 因为 det(M) 的值就是 ∑U:A→B(−1)τ(U)ω(U)。
在相交路径组中,找到最小的一对 (i,j) 满足 Pi,Pj 之间存在交点。假设他们最先相交于 u,那么交换 σi 和 σj 可以发现他们只相差一个符号,因此和为 0。
因此 LGV 引理得证。