• LGV 引理 学习笔记


    LGV 引理

    狭义和广义是本人自己乱定义的,切勿当真。

    LGV 引理(狭义)

    对于一张有向无环图(有环不行)。

    设我们有起点点集 \(A\),和终点点集 \(B\),且集合大小都为 \(t\)

    设一个矩阵 \(M\)\(M_{i,j}\) 代表 \(A_i\to B_j\) 的路径方案数,则有:

    \[\LARGE \det(M)=\sum\limits_S(-1)^{nxd(S)}C(S) \]

    其中 \(S\) 为一个排列,第 \(i\) 个数为 \(x\) 代表从 \(A_i\) 走到 \(B_x\)\(nxd(S)\) 就是求 \(S\) 的逆序对数量,\(C(S)\)\(S\) 的方案数(即使得所有 \(A_i\to B_x\)路径不交的路径方案数)。

    一般来说,是题目要求右边,我们用左边来求。当然,因为这个逆序对的条件极其苛刻,所以也伸展不开。

    LGV 引理(广义)

    方便理解,我们设立一个结构体 \(T_i\),含有 \(x,P\),代表从 \(a_i\to b_x\),经过的路径为 \(P\)(可以当做一个数组 \(PATH\) 什么的)。

    \(S\)\(T_i\) 的集合。

    然后设 \(w(P)\)\(P\) 路径上的边权之积。\(e(a,b)\)\(a\to b\) 每一条路径上的 \(w(p)\) 之和。

    构造矩阵 \(M\) 使得第 \(i\) 行第 \(j\) 列为 \(e(A_i,B_j)\)

    则有:

    \[\LARGE \det M=\sum\limits_S(-1)^{nxd(T_i.x)}\prod\limits_{i=1}^nw(T_i.P) \]

    边权是可以任意定义的。统计路径方案数时,就令所有边权都为 1,于是就变成了狭义。特殊的题可以将边权设为所需要的,甚至边权是生成函数也可以!

    例题

    P6657 - 【模板】LGV 引理

    https://www.luogu.com.cn/problem/P6657

    \(a_i,b_i\) 都是从上向下排序。则如果它们不相交,只有一种情况,就是 \(\forall i,a_i\to b_i\)。此时 \(S\) 的逆序对为 0。所以狭义 LGV 引理化简为:

    \[\det(M)=\sum\limits_S 1\times C(S) \]

    发现右边就是答案,于是计算左边,左边也是答案,于是于是了。

    P7736 - [NOI2021] 路径交点

    https://www.luogu.com.cn/problem/P7736

    咕咕咕咕咕咕

  • 相关阅读:
    Django--templates(模板层)
    基于 Hive 的文件格式:RCFile 简介及其应用
    Gobblin采集kafka数据
    Scala 中下划线的用途
    Gobblin编译支持CDH5.4.0
    Kafka到Hdfs的数据Pipeline整理
    Hadoop NameNode的ZKFC机制
    Windows下Eclipse提交MR程序到HadoopCluster
    Kettle实现MapReduce之WordCount
    hadoop中MapReduce多种join实现实例分析
  • 原文地址:https://www.cnblogs.com/BlankAo/p/15674648.html
Copyright © 2020-2023  润新知