推荐博客 : https://blog.csdn.net/qq_25576697/article/details/81138213

链接:https://www.nowcoder.com/acm/contest/139/A
来源:牛客网

题目描述
Count the number of n x m matrices A satisfying the following condition modulo (109+7).
* Ai, j ∈ {0, 1, 2} for all 1 ≤ i ≤ n, 1 ≤ j ≤ m.
* Ai, j ≤ Ai + 1, j for all 1 ≤ i < n, 1 ≤ j ≤ m.
* Ai, j ≤ Ai, j + 1 for all 1 ≤ i ≤ n, 1 ≤ j < m.
输入描述:

The input consists of several test cases and is terminated by end-of-file.
Each test case contains two integers n and m.

输出描述:

For each test case, print an integer which denotes the result.

示例1
输入

1 2
2 2
1000 1000

输出

6
20
540949876

备注:

* 1 ≤ n, m ≤ 103
* The number of test cases does not exceed 105.

题意 : 格点上的数字只能是 0,1,2 ,求在符合题意的前提下的路径数量

思路分析 : 将一对点向右下平移,得到两对新的点

作者:zzuzxy
链接:https://www.nowcoder.com/discuss/87452?type=101&order=0&pos=4&page=1
来源:牛客网

LGV 算法 (Lindström–Gessel–Viennot lemma)


求以上矩阵的行列式,其中 e(a,b) 是从a到b的方法数,带入求行列式即可得到(a1,a2,...an) 到 (b1,b2,...bn) 的所有不相交路径的种数

思路

考虑01和12的分界线
是(n, 0)到(0,m)的两条不相交(可重合)路径
分界线以及分界线以上的点是一种,分界线下是一种
平移其中一条变成(n-1, -1)到(-1,m-1);
变成

代码示例 :

using namespace std;
#define ll long long
const ll maxn = 1e6+5;
const ll mod = 1e9+7;
const double eps = 1e-9;
const double pi = acos(-1.0);
const ll inf = 0x3f3f3f3f;ll n, m;
ll pp[2005];ll qw(ll x, ll cnt){ll res = 1;while(cnt) {if(cnt&1) res *= x;res %= mod;x = x*x;x %= mod;cnt >>= 1;}return res;
}void init(){pp[0] = 1;for(ll i = 1; i <= 2000; i++) {pp[i] = pp[i-1]*i;pp[i] %= mod;}
}int main() {//freopen("in.txt", "r", stdin);//freopen("out.txt", "w", stdout);init();while(~scanf("%lld%lld", &n, &m)){ll a1 = (pp[n+m]*qw(pp[n], mod-2)%mod)*qw(pp[m], mod-2)%mod;ll a2 = (pp[n+m]*qw(pp[n+1], mod-2)%mod)*qw(pp[n-1], mod-2)%mod;ll a3 = (pp[n+m]*qw(pp[m-1], mod-2)%mod)*qw(pp[m+1], mod-2)%mod;ll ans = a1*a1-a2*a3;printf("%lld\n", (ans%mod+mod)%mod);}return 0;
}

转载于:https://www.cnblogs.com/ccut-ry/p/9404048.html

LGV - 求多条不相交路径的方案数相关推荐

  1. LGV 引理——二维DAG上 n 点对不相交路径方案数

    文章目录 引入 简介 定义 引理 证明 例题 释疑 扩展 引入 有这样一个问题: 甲和乙在一张网格图上,初始位置 (x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)(x1​,y1​) ...

  2. 强训之【走方格的方案数和另类加法】

    目录 1.走方格的方案数 1.1题目 1.2思路讲解 1.3代码展示 2.另类加法 2.1题目 2.2思路讲解 2.3代码展示 3.选择题 1.走方格的方案数 1.1题目 链接: link 描述 请计 ...

  3. 【HDOJ7079】Pty loves lines(计算直线的交点方案数,打表)

    Pty loves lines 题意: 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数,输出方案,n<=700 思路: 原题是HDOJ1466,不过数据只有20. 首先考虑原本简 ...

  4. “今日头条杯”首届湖北省大学程序设计竞赛 D. Who killed Cock Robin(选择联通子图的方案数,树形dp)

    题意: 给定n个点的树,求选出一个联通子图的方案数,答案对1e9+7取模. 数据范围:n<=2e5 解法: 设 d [ x ] 以 x 为 根 的 子 树 中 , 选 择 点 x 之 后 , 连 ...

  5. 【51nod - 1076】2条不相交的路径(Tarjan无向图判环)

    题干: 给出一个无向图G的顶点V和边E.进行Q次查询,查询从G的某个顶点V[s]到另一个顶点V[t],是否存在2条不相交的路径.(两条路径不经过相同的边) (注,无向图中不存在重边,也就是说确定起点和 ...

  6. _DataStructure_C_Impl:求图G中从顶点u到顶点v的一条简单路径

    #pragma once #include<stdio.h> #include<stdlib.h> #define StackSize 100 typedef int Data ...

  7. 二叉树-求第一条最长路径长度并输出路径

    求第一条最长路径长度并输出路径 算法思想 利用递归遍历思想,先求出二叉树最长路径也就是当前树的高度 再调用求路径长度的函数判断指针走向输出路径 int LongestPath(BiTree *T){ ...

  8. 最大流 ---- 最大不相交路径数 ---- P2766 最长不下降子序列问题(网络流24题)

    题目链接 最多不相交路径 这种问题变化比较多,但都能表示成以下形式: 已知一些路径,每个节点只能属于一条路径,求能选择多少条路径使它们不相交. 主要的方法是拆点,将一个点拆成两个,然后连边,容量表示该 ...

  9. 观光(最短路求方案数2)

    题目描述 "您的个人假期"旅行社组织了一次比荷卢经济联盟的巴士之旅. 比荷卢经济联盟有很多公交线路. 每天公共汽车都会从一座城市开往另一座城市. 沿途汽车可能会在一些城市(零或更多 ...

最新文章

  1. 在Git中,HEAD,工作树和索引之间有什么区别?
  2. C语言字符型、整型和变量的长度
  3. 正在更新office_Windows 9月10日累积更新:已修复和损坏的问题
  4. 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04
  5. 【Python】Pandas数据挖掘与分析时的常用方法
  6. 【李宏毅2020 ML/DL】P106 More about Life Long Learning
  7. 使用 jsfl 发布flash IDE 插件
  8. latex中嵌入视频文件
  9. 信用体系,生态之魂!——保险科技生态建设
  10. hp服务器修改bios设置密码,HP服务器的BIOS密码
  11. 用html制作一个中国高铁网页,行者|终于有人制作了一张靠谱的全国高铁地图!...
  12. 数据库连接池——基本原理
  13. java 中deff方法_怎么解决java.lang.NoclassDeffFoundError错误【转载】
  14. python json模块_python json模块使用详情
  15. Mac不同应用之间切换使用不同输入法
  16. 16岁女孩攻陷著名安全企业HBGary
  17. 利用phpstudy在网页输出学号姓名
  18. mysql8.0怎么样_MySQL8.0初体验
  19. 基于Android Q 修改默认音量等级
  20. C#winform 从ftp下载文件(带进度条)、获取文件(夹)的名字

热门文章

  1. 负载均衡session解决方案
  2. display:table-cell;内容超出隐藏,table,td内容超出隐藏
  3. 他们30岁在做什么?
  4. python-docx设置表格填充底色以及切分单元格(仅使用python-docx)
  5. go语言中的读写操作以及文件的复制
  6. 大木桶资源共享网站数字资源基本情况
  7. Linux Centos8最小化安装,tab键无法使用解决方法
  8. ant脚步执行JUnit测试用例
  9. 【树莓派】CPU温度控制风扇(C语言)
  10. 骁龙660_骁龙665和骁龙660哪个好