LGV 引理学习笔记
\(\text{LGV}\) 引理学习笔记
\(\text{LGV}\) 引理一般用于求解有向无环图中多条不相交路径的方案数,引理内容如下。
引理
定义 \(w(P)\) 指的是路径 \(P\) 上所有边权的乘积(在路径计数问题中认为所有边权均为 \(1\) 即可),\(e(A,B)\) 指的是 \(A\to B\) 的所有路径的 \(w\) 和。
对于一个由起点组成的集合 \(A\) 和终点组成的集合 \(B\),满足 \(|A|=|B|=n\) 且 \(A\bigcap B=\varnothing\),那么对于矩阵
有
其中,\(\text{det}(M)\) 指的是矩阵 \(M\) 对应的行列式,\(p\) 为 \(1\) 到 \(n\) 的排列,\(r(p)\) 为 \(p\) 的逆序对个数,\(C(p)\) 表示有多少个由 \(n\) 条路径组成的路径集合 \(P=\{P_1,P_2,\cdots,P_n\}\) 满足 \(P_i\) 为 \(A_i\to B_{p_i}\) 的路径,且 \(\forall i,j,P_i\bigcap P_j=\varnothing\),也就是所有的路径集合没有交点。
证明:
考虑将行列式展开,得到:
计表示所有不相交路径组为 \(S_1\),相交路径组为 \(S_2\)。
那么可以继续化为:
有因为 \(C(p)=\sum_{P=\{P_i:A_i\to B_{p_i}\}\bigvee P\in S_1}w(P)\),那么我们只需证:
现在考虑对于 \(P\in S_2\) 的字典序最小的二元组 \((i,j)\) 满足 \(P_i\bigcap P_j\ne\varnothing\),那么假设两条路径分别为 \(A_i\to u\to B_{p_i}\) 和 \(A_j\to u\to B_{p_j}\),不妨将两者调换成 \(A_i\to u\to B_{p_j}\) 和 \(A_j\to j\to B_{p_i}\)。那么调换后的新路径组 \(P'\) 一定满足 \(w(P)=w(P')\),而对应的排列 \(p'\) 相当于将 \(p\) 中的 \(p_i,p_j\) 调换,那么逆序对个数的奇偶性一定发生了改变,因此这两者对答案的贡献相反。又因为这样的调换不对其他的路径产生影响,所以 \(P'\) 满足条件的最小二元组一定也是 \((i,j)\),所以映射 \(f\) 满足 \(f(P)=P',f(P')=P\),构成双射。也就是 \(S_2\) 中的每一个路径集合,都一定存在一个和它对答案贡献相反的路径集合。所以有:
那么引理得证。
应用
下面考虑这个引理对我们做题的帮助,不难发现,如果将整张图按照起点、普通点、终点的顺序依次排开,并且每一层之间没有连边,那么 \(\text{det}(M)\) 反映的就是偶数个交点的路径集合个数减去奇数个交点的路径集合个数。而对于一些特殊的图如网格图来说,如果能够推出当 \(p\) 中存在逆序对时一定不存在不相交的路径集合,那么 \(\text{det}(M)\) 反映的就是不相交路径集合的个数。