LGV 引理
(其实是贺的:https://www.luogu.com.cn/paste/whl2joo4)
LGV 引理
LGV 引理,即 Lindström–Gessel–Viennot lemma .
一个带权 DAG 中有起点集 ,终点集 .
不相交路径定义为:一组 的不相交路径 ,满足 是一条 到 的路径,其中 是 对应的排列 .
且对于任意 , 无公共点(即不相交)令 为路径 上所有边权的积 .
对顶点 ,定义
令 表示排列 的逆序对个数 .
令矩阵
则有
证明:
展开行列式的定义,得 LGV 引理等价于
其中 是一个 到 的排列 .
妈呀左右两边长得这么像!
观察组合意义!我们可以发现:
- LHS 其实就是选 条起点和终点分别互不相同的路径,然后把他们的带符号和加起来 .
- RHS 几乎一样,只不过 变成了 ,也就是要求路径不相交 .
故我们考虑构造双射 .
如果两个人的路径相交了,我们可以将相交后的部分取反,就相当于这两人分别走到了对方的终点去 . 这样是不是就不交了!!
upd. 好像有问题 .
AJH 大佬说边权只要是交换环就行,也就是说可以是 GF .
太强了 orz
不相交路径计数
LGV 引理的直接应用 .
有一个图 是 平面图 且是 DAG .
从每个 到 ,在满足路径不交的前提下,所有方案中路径边权乘积之和 .
是不是就是板子啊 .
你用一种方法算出 ,然后是不是构造出 高斯消元求行列式就完了 .
为什么要是平面图?
一般的 LGV 题符合要求的匹配只有一组(e.g. 网格图),因此按照匹配的顺序列矩阵求出的就是不交路径数量 .
然而如果不是平面图,直接求 其实并不一定是不交路径数量 .
具体可以看 NOI2021 路径交点 .
例题
Luogu6657. 【模板】LGV 引理
link: https://www.luogu.com.cn/problem/P6657
一个 ,每步只能往右下走 .
个棋子,初始在 ,要到 .
求不交路径方案数,对 取模 .
不相交路径计数 弱化版 .
显然对于任何一个路径,,这样我们才能计数嘛 .
因为是网格图,所以拿出我们老生常谈的网格图两点路径计数:
(因为从 到 的方案数是 )
然后预处理阶乘及其逆元算 binom,然后高斯消元求行列式就完了 .
时间复杂度 .
CF348D Turtle
link: https://codeforces.com/contest/348/problem/D
网格图去掉一些点,两个点从 走到 ,求不交路径数取模 .
大力 LGV 引理 .
把两个相同起始点拆开,起点拆成 ,,终点拆成 , .
然后 LGV 引理可得一个二阶行列式,对角线法则乘开即可 .
然后变成带限制路径计数,做四遍 DP 即可 .
时间复杂度 .
Monotonic Matrix
link: https://www.nowcoder.com/acm/contest/139/A
求满足以下条件 矩阵的数量:
- .
- , .
对 取模 .
从起点 终点 画一条非降路径,然后 是沿着网格走的过程 .
从起点 终点 画一条非降路径,然后 是沿着网格走的过程 .
然后用 LGV 引理算出不交的路径的方案数即可 .
然而这玩意也是二阶行列式,就是几个组合数乘一下减一下 .
时间复杂度在于求组合数 .
习题
Reference
以下是博客签名,正文无关
本文来自博客园,作者:yspm,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/15997637.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2020-03-12 时间复杂度符号