题意:

给你一个n*m的地图,"#"是障碍,"."是路,不能走出边界,问从(1,1)到(n,m)选出两条不相交最短路径的方案数是多少(其中起点和终点相同不算相交)

思路:

知道Lindström–Gessel–Viennot lemma定理就是水题了

对于一个无边权有向无环图,给出n个起点和对应的n个终点,这n条不相交路径的方案数为

行列式的值

其中e(a, b)为图上a点到b点的方案个数

对于这题

行列式大小为2

且a1 = (1, 2);a2 = (2, 1);b1 = (n-1, m);b2 = (n, m-1);

直接套就可以了

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<string>
#include<math.h>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
#define LL long long
#define mod 1000000007
char str[3005][3005];
int dp1[3005][3005], dp2[3005][3005];
int main(void)
{int n, m, i, j;scanf("%d%d", &n, &m);for(i=1;i<=n;i++)scanf("%s", str[i]+1);if(str[1][2]=='#' || str[2][1]=='#')printf("0\n");else{dp1[1][2] = dp2[2][1] = 1;for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(i+j<=3 || str[i][j]!='.')continue;dp1[i][j] = (dp1[i][j-1]+dp1[i-1][j])%mod;dp2[i][j] = (dp2[i][j-1]+dp2[i-1][j])%mod;}}//printf("%d %d %d %d\n", dp1[n-1][m], dp1[n][m-1], dp2[n-1][m], dp2[n][m-1]);printf("%lld\n", (((LL)dp1[n-1][m]*dp2[n][m-1]-(LL)dp1[n][m-1]*dp2[n-1][m])%mod+mod)%mod);}return 0;
}

Codeforces Round #202 (Div. 1): D. Turtles(Lindström–Gessel–Viennot lemma定理+DP)相关推荐

  1. 排列组合( Lindström–Gessel–Viennot lemma 定理)

    链接:https://www.nowcoder.com/acm/contest/139/A 来源:牛客网 Monotonic Matrix 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C+ ...

  2. Lindström–Gessel–Viennot lemma

    (摘自知乎) Lindström–Gessel–Viennot lemma(Lindström-Gessel-Viennot lemma这里有详细介绍跟证明) 在一个有向无环图里,想要计算从n个起点 ...

  3. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

  4. 【Christmas Game】【CodeCraft-21 and Codeforces Round #711 (Div. 2)】【Nim-博弈】【树形DP】【拆分树】

    CodeCraft-21 and Codeforces Round #711 (Div. 2) Christmas Game Nim-博弈 树形DP 拆分树 牛客链接 https://ac.nowco ...

  5. Codeforces Round #202 (Div. 1) A. Mafia 【二分】

    A. Mafia time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...

  6. Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理

    B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/pr ...

  7. Codeforces Round #614 (Div. 2) E. Xenon's Attack on the Gangs(DP记忆化搜索+思维)

    题目链接:https://codeforces.com/contest/1293/problem/E 题目大意:   给出一棵树,要求给树的每条边赋权值,使得树中所有点的 m e x ( x , y ...

  8. Codeforces Round #594 (Div. 2) Ivan the Fool and the Probability Theory(DP)

    题目链接:https://codeforces.com/contest/1248/problem/C 题目大意:n*m的长方形中,一共有两种颜色,问每一个块相邻最多有一个与之相同颜色的块的染色方案数 ...

  9. Codeforces Round #190 (Div. 1): E. Ciel and Gondolas(决策单调性DP+wqs二分)

    E. Ciel and Gondolas 题意: bzoj5311:https://www.lydsy.com/JudgeOnline/problem.php?id=5311 同一道题目,但是bzoj ...

最新文章

  1. java输出机票问题_java编程,机票例题纠正改错,谢谢
  2. boost::type_erasure::negatable相关的测试程序
  3. 信息熵与信息增益的理解
  4. 发力企业级市场,微软Hololens开辟了一条VR新道路
  5. pat 乙级 1006 换个格式输出整数(C++)
  6. 如何部署前端react项目到服务器,Vue、React前端项目打包部署
  7. ai人工智能操控什么意思_为什么要建立AI分散式自治组织(AI DAO)
  8. 3dmax2016软件一打开文件就程序错误的原因及解决方法
  9. 看两宋风云,搞清了4个之前对两宋历史认识错误的地方
  10. 什么是B2B,B2C,O2O?
  11. 小红书app复制链接转换为可直接访问链接
  12. iOS之App转让-别告诉我你还不知道!
  13. [agc012e]Camel and Oases
  14. ubuntu系统界面卡死解决方案记录
  15. Asset Store上常用的40个Unity插件汇总——进阶开发者必备Unity插件
  16. 历时一个月,获奖名单公开!这次又挖到了哪些“宝藏”?
  17. 企业无线局域网,买AP一定需要买AC控制器吗?还有一定要买AP授权吗?
  18. 七月前半个月找工作经历(三)--珍爱网
  19. CSS3 counters计数器学习笔记
  20. 超全超靠谱的 iconfont 字体图标库维护与使用

热门文章

  1. python有什么用-python是什么意思?python有什么用?
  2. python可以干嘛-python都可以用来做什么
  3. python中国官网-中蟒 (中文 Python) 編程語言網站 chinesepython
  4. 科大讯飞新一代语音识别系统揭秘
  5. python数据科学手册_数据科学的Python
  6. HTML-图像,音频,视频和路径
  7. 蓝桥杯:BFS解决问题总结(九宫重排,跳蚱蜢,卡片交换)
  8. 采用dlopen、dlsym、dlclose加载动态链接库
  9. 50行代码实现的一个最简单的基于 DirectShow 的视频播放器
  10. 查看openfrie是否连接mysql_openfire连接mysql数据库的字符集问题解决