lgv引理矩阵树

1。哭哭,不是很会线代。。。

真的瞎说属于是了。。

lgv

lgv讲的是你有一个dag(有权),并且钦定了 \(n\) 个源,\(n\) 个汇。

路径权值定义成了边权的乘积。

你要先匹配路径端点,也就是对于 \((i,p_i)\) 含义就是 \(i\) 号源,匹配到 \(p_i%\) 号汇。

你要计算的是 ,对于每一种匹配方式,大小为 \(|n|\) 的路径的集合,使得集合中路径两两无交,并且都是 \(i\) 源到 \(p_i\) 汇的路径 的 权 乘积的有符号和。

有符号和就是每个排列要算上 \(\tau(p)\)\[ \begin{aligned} \mathrm{ans}=\mathrm{det(M)}\\ M_{i,j}=E(i,j) \end{aligned} \] \(E(i,j)\) 含义是从 \(i\) 源到 \(j\) 汇所有可行路径权值的和。

为什么呢?你看一下行列式本质上也是在枚举 \((i,p_i)\) 只不过,他把所有可行的路径权都乘起来了。

由于是带符号和,对于一个交集不为空的路径集合 \(\mathcal{P}\) 考虑源最小的,第一次相交的位置,比如说。

\((a,p_a),(b,p_b)\) 第一次交于 \(x\)

\((a,x,p_a),(b,x,p_b)\) 我们把它映射到 \((a,x,p_b) , (b,x,p_a)\) 就是把路径翻折,想卡特兰那样,是可以构成双射的。

比较显然。因为钦定了最小的,不难发现由于 \(p_a,p_b\) swap 了,所以逆序对奇偶改变,所以抵消。


矩阵树

无向图

矩阵树不会证明、。。

无向图就是说生成树个数为 \((D-E)\) 的余子式 (degree-edge) ,带权的生成树和可以看成重边。

实际上我们应该忽略自环。

注意无向图对于一条边 \((x,y)\) 会给 \(E_{x,y},E_{y,x}\) 两个贡献。


有向图

有向图情况就分为两种情况了。

根向生成树,边指向定好的根,答案为 \((D^{out}-E)\) 去除根的那一行那一列的余子式。

叶向生成树,边来自定好的根,答案为 \((D^{in}-E)\) 去除根的那一行那一列的余子式。

记忆方法,可以画一个2个点一条边的图看答案。

\(E\) 是有向图,所以 \((x,y)\) 只会提供 \(E_{x,y}\) 的贡献了。。。


best 引理

一个欧拉图(有向)\(x\) 开始的欧拉回路 个数为:

\(C\cdot\mathrm{deg}_x\prod (\mathrm{deg}_u-1)!\)

\(C\)\(x\) 为根的根/叶向树。

大概是构造了这样一个双射,一个根向树对应着 若干 欧拉回路。

我们把非树边随意排序,然后我们通过一个树+排列构造一个欧拉回路。

我们按定好的序走非树边,最后走那条树边。由于你求欧拉回路的时候就能保证一定存在,所以这么做一定构造出欧拉回路。

那么如何说明一个欧拉回路一定对应这一个树+序列?

每个点最后一次到的时候连边。只需要说出没有环即可。

如果有环说明终点在环上,但是很遗憾终点是根,并且根不能有出边。。。。双设成立。

回忆一下有向图有欧拉回路充要条件是每个点 入度=初度。

有欧拉路的充要条件是 只存在两个点不满足上述条件,一个入-出=1,另一个是-1。

那么我们不难想到欧拉路个数实际上只需要连一条,并且钦定是树边即可。


lgv引理矩阵树
https://proton-z.github.io/2022/04/11/lgv-matrixtree-simple-thought/
作者
Imitators
发布于
2022年4月11日
许可协议