博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 348 D - Turtles
阅读量:5337 次
发布时间:2019-06-15

本文共 1743 字,大约阅读时间需要 5 分钟。

思路:
LGV 定理 (Lindström–Gessel–Viennot lemma)
从{
\(a_1\),\(a_2\),...,\(a_n\)} 到 {
\(b_1\),\(b_2\),...,\(b_n\)}的不相交路径数等于行列式
\[ {\left[ \begin{array}{ccc} c(a_1, b_1) & c(a_1, b_2) & ... & c(a_1, b_n) \\ c(a_2, b_1) & c(a_2, b_2) & ... & c(a_2, b_n) \\ ... & ... & ... & ... \\ c(a_n, b_1) & c(a_n, b_2) & ... &c(a_n, b_n) \\ \end{array} \right ]} \]
的值。其中,\(c(a_i, b_i)\) 表示从点 \(a_i\) 到点 \(b_i\) 的路径方案数。
那么这道题就是求一个二阶行列式的值
代码:

#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma GCC optimize(4)#include
using namespace std;#define y1 y11#define fi first#define se second#define pi acos(-1.0)#define LL long long//#define mp make_pair#define pb push_back#define ls rt<<1, l, m#define rs rt<<1|1, m+1, r#define ULL unsigned LL#define pll pair
#define pli pair
#define pii pair
#define piii pair
#define pdd pair
#define mem(a, b) memset(a, b, sizeof(a))#define debug(x) cerr << #x << " = " << x << "\n";#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);//head const int N = 3e3 + 5;const int MOD = 1e9 + 7;int dp[N][N], n, m;char s[N][N];int solve(int a, int b, int c, int d) { for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) dp[i][j] = 0; for (int i = a; i <= c; ++i) { for (int j = b; j <= d; ++j) { if(i == a && j == b) { if(s[i][j] == '.') dp[i][j] = 1; } else { if(s[i][j] == '.') dp[i][j] = (dp[i-1][j]+dp[i][j-1])%MOD; } } } return dp[c][d];}int main() { scanf("%d %d", &n, &m); for (int i = 1; i <= n; ++i) scanf("%s", s[i]+1); printf("%lld\n", (solve(1, 2, n-1, m)*1LL*solve(2, 1, n, m-1) - solve(1, 2, n, m-1)*1LL*solve(2, 1, n-1, m)%MOD+MOD)%MOD); return 0;}

转载于:https://www.cnblogs.com/widsom/p/11215383.html

你可能感兴趣的文章
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
关于 linux 的 limit 的设置
查看>>
MTK笔记
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
struts1和struts2的区别
查看>>
Redis常用命令
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>