LGV 引理

LGV 引理

给出一个 DAG 及 \(m\) 对点 \((A_i,B_i)\),求出 \(P=(P_1,P_2,\dots,P_m)\) 的数量,其中 \(P_i\) 表示一条 \(A_i\to B_i\) 的路径,且 \(P_i\) 两两不交。

\(e(a,b)\) 表示 \(a\to b\) 的路径数量,构造 \(m\times m\) 的矩阵 \(M\),有 \(M_{i,j}=e(A_i,B_j)\)。LGV 的引理指出:

\[ans=\det M \]

证明:将行列式展开,得到:

\[\det M=\sum_p (-1)^{\tau(p)} \prod_{i=1}^m e(A_i,B_{p_i}) \]

\[=\sum_p (-1)^{\tau(p)} \sum_{P} 1[P_i:A_i\to B_{p_i}] \]

其中 \(P\) 表示路径的集合。将 \(P\) 中不与任何路径有交的划分到 \(S_1\),和任意一条路径有交的划分到 \(S_2\),那么可以得到:

\[\det M=\sum_p (-1)^{\tau(p)} \sum_{P} 1[P_i:A_i\to B_{p_i}][P\in S_1]+\sum_p (-1)^{\tau(p)} \sum_{P} 1[P_i:A_i\to B_{p_i}][P\in S_2] \]

引理的内容其实相当于:

\[\det M=\sum_p (-1)^{\tau(p)} \sum_{P} 1[P_i:A_i\to B_{p_i}][P\in S_1] \]

因此需要证明的就是:

\[\sum_p (-1)^{\tau(p)} \sum_{P} 1[P_i:A_i\to B_{p_i}][P\in S_2]=0 \]

考虑构造双射。令 \(S_2\) 中编号最小的两条有交的路径对为 \((P_1=s_1\to t_1,P_2=s_2\to t_2)\),在最后一次相交的后面交换两条路径,即 \((P_1'=s_1\to t_2),(P_2'=s_2\to t_1)\),显然这样不会改变路径相交的情况,且在排列 \(p\) 中交换了两个数,根据经典结论,这样会让逆序对的数量改变。又因为这样是双射,两两对应且后面的权值也不改变,因此 \(LHS=0=RHS\)

拓展:每个点有点权,每种方案的价值为点权和。只需要将 \(e\) 的定义改为所有方案的价值之和,\(1\) 改成价值即可。

H - Random Robots

坐标轴上有 \(k\) 个机器人,接下来 \(n\) 秒内,每个机器人每秒要么向右移一格,要么不变。求没有任何两个机器人相遇的概率。

\(k\le 10,n\le 10^3,x_i\le 10^3\)。答案对大质数取模。


算方案数,最后除以 \(2^{nk}\) 即可。

建立分层图,第 \(i\) 层表示当前时间为 \(i\),那么如果决定了最终机器人所在的坐标,就直接用 LGV 引理即可计算。观察行列式(就是要求的值):

\[\det M=\sum_p (-1)^{\tau(p)} \prod_{i=1}^m e(A_i,B_{p_i}) \]

既然终点不确定,那就考虑用动态规划直接计算所有终点序列的行列式的和。令 \(f_{i,S,\tau}\) 表示考虑了前 \(i\) 个点,已经选择了终点的机器人集合为 \(S\),逆序对奇偶性为 \(\tau\) 的乘积的和。转移只需要考虑 \(i\) 是否选择,如果选择的话选择哪一个。

时间复杂度 \(O(2^kn)\)

posted @ 2026-09-16 08:29  今天你学废了么  阅读(10)  评论(0)    收藏  举报