https://vjudge.net/problem/CodeForces-348D

题意

给一个m*n有障碍的图,求从左上角到右下角两条不相交路径的方案数。

分析

用LGV算法。
从(1,1)-(n,m)的除了终点和起点不能相同的路径选取了(1,2),(2,1) 为起点,(n-1,m),(n,m-1) 为终点,因为从1,1出发只有这两个点可以走,到达(n,m)也只有这两个点,所以与原问题等价。

#include<iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<vector>
#include<map>
using namespace std;
typedef long long ll;
const int maxn = ;
const ll mod = 1e9+;
ll dp1[maxn][maxn];
ll dp2[maxn][maxn];
int mp[maxn][maxn];
int n,m;
int main()
{
char s[maxn];
while(~scanf("%d%d",&n,&m))
{
memset(dp1,,sizeof(dp1));
memset(dp2,,sizeof(dp2));
memset(mp,,sizeof(mp));
for(int i=;i<=n;i++)
{
scanf("%s",s);
for(int j=;j<m;j++)
{
if(s[j]=='.')mp[i][j+]=;
}
}
dp1[][]=;
dp2[][]=;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(mp[i][j])
dp1[i][j]=(dp1[i-][j]+dp1[i][j-])%mod;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(mp[i][j])
dp2[i][j]=(dp2[i-][j]+dp2[i][j-])%mod;
printf("%I64d\n",((dp1[n-][m]*dp2[n][m-])%mod-(dp1[n][m-]*dp2[n-][m])%mod+mod)%mod);
}
}

CodeForces - 348D Turtles(LGV)的更多相关文章

  1. CodeForces 348D Turtles(LGV定理)题解

    题意:两只乌龟从1 1走到n m,只能走没有'#'的位置,问你两只乌龟走的时候不见面的路径走法有几种 思路:LGV定理模板.但是定理中只能从n个不同起点走向n个不同终点,那么需要转化.显然必有一只从1 ...

  2. codeforces 348D Turtles

    codeforces 348D Turtles 题意 题解 代码 #include<bits/stdc++.h> using namespace std; #define fi first ...

  3. Codeforces 348D Turtles LGV

    Turtles 利用LGV转换成求行列式值. #include<bits/stdc++.h> #define LL long long #define fi first #define s ...

  4. Codeforces.348D.Turtles(容斥 LGV定理 DP)

    题目链接 \(Description\) 给定\(n*m\)的网格,有些格子不能走.求有多少种从\((1,1)\)走到\((n,m)\)的两条不相交路径. \(n,m\leq 3000\). \(So ...

  5. CodeForces - 615D Multipliers(数论)

    http://codeforces.com/problemset/problem/615/D 题意 给出m个质因子,组成一个数n.问n的约数的乘积是多少,输出mod 1e+7的结果. 分析 从输入我们 ...

  6. Codeforces Round #328(Div2)

    CodeForces 592A 题意:在8*8棋盘里,有黑白棋,F1选手(W棋往上-->最后至目标点:第1行)先走,F2选手(B棋往下-->最后至目标点:第8行)其次.棋子数不一定相等,F ...

  7. Codeforces Round #326(Div2)

    CodeForces 588A 题意:Duff喜欢吃肉,想在接下来的n天,每天都有Ai斤肉吃,但每一天肉的单价Pi不定,肉 可以保存不过期,现已知n天每天肉的斤数Ai,以及单价Pi,为了使每天都   ...

  8. Codeforces 831C--Jury Marks (思维)

    题目链接:http://codeforces.com/problemset/problem/831/C 题意:有一位参赛选手,我们不知道他初始或最后的成绩,但是知道k次评审所加(减)的分数,以及n个在 ...

  9. CodeForces - 348D:Turtles(LGV定理)

    题意:给定N*M的矩阵,'*'表示可以通过,'#'表示不能通过,现在要找两条路径从[1,1]到[N,M]去,使得除了起点终点,没有交点. 思路:没有思路,就是裸题.  Lindström–Gessel ...

随机推荐

  1. Java代码安全

    https://www.owasp.org/index.php/Category:Java

  2. Trouble shooting(问题解决):centos 7 gnome show someting has gone wrong.

    centos 7 升级 内核 3.10,startx启动不了了.进界面也是oh,no!someting has gone wrong . 参见帖子:http://bbs.csdn.net/topics ...

  3. 安装rlwrap 的简单方法

    1. 下载安装 epel包 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 2. 安装r ...

  4. C-Lodop获取打印机列表Create_Printer_List

    C-Lodop获取打印机列表Create_Printer_List,此方法Lodop不支持,是C-Lodop特有的函数,客户端本地打印单独用c-lodop,或集中打印等,可以获得本机或云主机的打印机列 ...

  5. Android x86 下运行纯ARM版APP

    Android x86 默认不带houdini,运行纯ARM版会提示: 很抱歉,”xxxx”已停止运行 设置->应用兼容性->打开 终端模拟器 $ su# enable_nativebri ...

  6. codeforces279B

    Books CodeForces - 279B When Valera has got some free time, he goes to the library to read some book ...

  7. VMware虚拟机看不到共享目录

    1. 确认VMtools已经装好,开启共享文件夹,设置好共享目录 2.执行命令 sudo mount -t vmhgfs .host:/ /mnt/hgfs如果出现错误: Error: cannot ...

  8. BZOJ 400题纪念

    应该是最后一次纪念了吧! 想当年,我可是发过"BZOJ 10题纪念"的人--那时候(一年前?)的自己真的好菜啊,只能说掌握了c++的基础语法的样子.当时觉得省选级别的BZOJ题是世 ...

  9. SharePoint 2013 批量导入、删除帐号

    删除一个group里所有的帐号: cls ########################### # "Enter the site URL here" $SITEURL = &q ...

  10. bzoj1001/luogu4001 狼抓兔子 (最小割/平面图最小割转对偶图最短路)

    平面图转对偶图:先在原图中加一个s->t的边,然后对每个面建一个点,对每条分隔两个面的边加一条连接这两个面对应点的边,边权等于原边权. 然后从刚才加的s->t分割出来的两面对应的两个点跑最 ...