链接:https://www.nowcoder.com/acm/contest/139/A
求一个n*m的0、1、2矩阵(满足左上小于右下)的构造方案数。
方案数就等于这两条可以重合(不可相交)的分界线的种类数,如下图:
即:给定起点(n,0)、终点(0,m),只能向上和向右走,问有多少种走法,其实就是向右走m步向上走n步的组合数:
Cmn+m或Cnn+m
这里给出Lindström–Gessel–Viennot引理的应用:给一张无权有向无环图,给定n个起点和对应的n个终点,求n条不相交路径的方案数,引理给出结果为:
其中ai表示路径i的起点,bi表示路径i的终点。答案就是M的行列式的值。
对于本两条线的起点和终点不能重叠而且得和原方案等价(方案数等价即可),这就需要变换一下。把起终点向左上平移一下,将其中的一对起终点平移到(n−1,−1)和(−1,m−1)去,就有e(a1,b1)=e(a2,b2)=Cnn+m,e(a1,b2)=Cn+1n+m,e(a2,b1)=Cm+1n+m那么针对本题的答案就是:
Cnn+m2−Cn+1n+m×Cm+1n+m
1 |
|
v1.5.2