题意:

给定一张图,图上存在障碍点,两个人从(1,1)(1,1)(1,1)出发,只能向上或向右走,走到(n,m)(n,m)(n,m)且路径不相交的方案数

数据范围:1≤n,m≤30001\le n,m\le 30001≤n,m≤3000

分析:

没什么好分析的,就是个裸题

前置芝士:LGV引理

LGVLGVLGV引理就是求解nnn组一一对应的起点到终点,且路径不相交的方案数

不会可以戳这里

题目可以转化成2个起点:(1,2),(2,1)(1,2),(2,1)(1,2),(2,1) 到 两个终点: (n,m−1),(n−1,m)(n,m-1),(n-1,m)(n,m−1),(n−1,m)的不相交路径方案数,通过O(nm)O(nm)O(nm)的DPDPDP可以预处理出每个起点到每个终点的路径个数,构造出一个大小为2×22\times 22×2 的 LGVLGVLGV引理矩阵,然后直接求矩阵的行列式就可以了

代码:

#include<bits/stdc++.h>using namespace std;namespace zzc
{const int maxn = 3005;const long long mod = 1e9+7;long long f[maxn][maxn],x1,x2,x3,x4;bool mp[maxn][maxn];char ch[maxn];long long n,m;void work(){scanf("%lld%lld",&n,&m);for(int i=1;i<=n;i++){scanf("%s",ch+1);for(int j=1;j<=m;j++){if(ch[j]=='#')mp[i][j]=true;}}memset(f,0,sizeof(f));f[1][1]=1;for(int i=2;i<=n;i++){for(int j=1;j<=m;j++){if(mp[i][j]) continue;f[i][j]=(f[i][j]+f[i-1][j]+f[i][j-1])%mod;}}x1=f[n][m-1];x2=f[n-1][m];memset(f,0,sizeof(f));f[1][1]=1;for(int i=1;i<=n;i++){for(int j=2;j<=m;j++){if(mp[i][j]) continue;f[i][j]=(f[i][j]+f[i-1][j]+f[i][j-1])%mod;}}x3=f[n][m-1];x4=f[n-1][m];printf("%lld\n",((x1*x4%mod)-(x2*x3%mod)+mod)%mod);}}int main()
{zzc::work();return 0;
}

CF348D LGV引理相关推荐

  1. 模板:LGV引理(线性代数)

    所谓LGV引理,就是解决LGV问题的引理. (逃) 前言 上联:古有学完SAM学PAM: 下联:今有学完Polya学LGV: 横批:小清新. 常被用于有向图不交路径计数问题.(废话) 这个东西是真的不 ...

  2. 【2022国赛模拟】无损加密——LGV引理、状压DP

    原创题无来源 题目描述 题解 首先把问题稍作简化,我们可以最后把行列式乘上所有 dkd_kdk​ 的积的 nnn 次方,这样前面的过程就不用考虑 dkd_kdk​ 了,暴力也只需要变动 [lk,rk] ...

  3. 2021牛客暑期多校训练营9 Cells(LGV引理,FFT)

    2021牛客暑期多校训练营9 Cells(LGV引理,FFT) 题目链接 题意 在一个无限大的xyxyxy​坐标轴上,求从A={(0,a1),(0,a2),...,(0,an)}A=\{(0,a_1) ...

  4. 【luogu P6657】【模板】LGV 引理(行列式)(数学)(线性代数)

    [模板]LGV 引理 题目链接:luogu P6657 题目大意 给你一个二维图,然后分别有 m 个棋子,分别要从 (ai,1) 走到 (bi,n),只能从 (x,y) 走到 (x+1,y) 和 (x ...

  5. 【luogu P7736】路径交点(LGV引理)(DP)(矩阵乘法)

    路径交点 题目链接:luogu P7736 题目大意 给你一个分层图,第一层和最后一层的点数相同. 然后要从第一层的 n 个点走到最后一层的 n 个点,每个点到达的位置互不相同. 然后问你偶数个交点的 ...

  6. 2018牛客多校第一场 Monotonic Matrix (LGV引理)

    链接:https://www.nowcoder.com/acm/contest/139/A 来源:牛客网 题目描述 Count the number of n x m matrices A satis ...

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

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

  8. P7736-[NOI2021]路径交点【LGV引理】

    正题 题目链接:https://www.luogu.com.cn/problem/P7736 题目大意 有kkk层的图,第iii层有nin_ini​个点,每层的点从上到下排列,层从左到右排列.再给出连 ...

  9. P6657 【模板】LGV 引理

    题目链接:点击这里 题目大意: 有一个 n×nn\times nn×n 的棋盘,左下角为 (1,1)(1,1)(1,1),右上角为 (n,n)(n,n)(n,n),若一个棋子在点 (x,y)(x,y) ...

最新文章

  1. 首个单设备模拟神经元出现 可有效解决传统计算机所面临的问题
  2. IT业爆发“新人”争夺战
  3. ado.net操作数据库常用方法集锦
  4. Xamarin.Forms开发实战基础篇大学霸内部资料
  5. Guestfish 使用说明
  6. 图片流写出 并带数据_IO流阶段---字符流
  7. Html-Css标签lable中定义宽度需要其他的支持
  8. nginx main user
  9. [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
  10. python基础: day4作业计算器
  11. [转]VC 键盘虚拟码
  12. linux应用程序逆向,Linux下查看并下载命令源码包(依据命令/应用程序逆向获取并且安装其所属源码包)...
  13. swf转换为GIF格式
  14. 当心Excel中的嵌套IF公式
  15. 【清华大学】操作系统 陈渝——Part7 进程/线程 管理
  16. 分析评估和定位声音质量
  17. SpringCloud 微服务架构开源项目,适合接私活、毕业设计(附源码)
  18. ARM:嵌入式系统之WDT中断实验
  19. 人类海马体中缓慢的Theta-gamma相幅耦合支持新的情景记忆的形成
  20. 常见文件mime类型

热门文章

  1. 四款PDF文档制作软件横向评测
  2. (翻译)可变形控件(Morphing Controls)
  3. Java开发快速上手!西安java培训班价格
  4. arm开发板放张图片动起来_如何看待第三届集成电路创新创业大赛arm杯北理在杯赛中居然可以在0.35s内播放完20张ppt?...
  5. 查看笔记本能不能用独显连接外部显示器的方法
  6. Win10_VS2013_CPU_Darknet编译踩坑
  7. 攻防世界 BotW-
  8. 【观察】凯捷携手微软:以智能车联网解决方案,构筑车企竞争力“护城河”...
  9. python连接redis_Python连接Redis
  10. 类指数级数(指数积分函数的变体)数值计算算法的C++实现