穿梭时间的画面的钟 从反方向 开始移动|

tmjyh09

园龄:3年2个月粉丝:1关注:3

P1958 上学路线 题解

题目传送门

题意简述

一张地图,只能往上往右走,其中有 n 个障碍不能走上去,问从 (1,1) 走到 (a,b) 有几种方案。

分析

首先,我们将棋盘倒置方便处理,也就是说只能往下往右走。

动态规划。设 fi,j 表示从 (1,1) 走到 fi,j 的路径条数,显然

fi,j={1,i=1&j=1,0,trap,fi1,j+fi,j1,otherwise.

代码

#include <bits/stdc++.h>
using namespace std;
int f[45][45], a, b;
int n;
int main() {
cin >> a >> b >> n;
for (int i = 1, x, y; i <= n; i++) {
cin >> x >> y;
f[x][y] = -1;
}
f[1][1] = 1;
for (int i = 1; i <= a; i++) {
for (int j = 1; j <= b; j++) {
if (f[i][j] != -1) {
if (f[i - 1][j] != -1)f[i][j] += f[i - 1][j];
if (f[i][j - 1] != -1)f[i][j] += f[i][j - 1];
}
}
}
cout << f[a][b];
return 0;
}

本文作者:tmjyh09

本文链接:https://www.cnblogs.com/tmjyh09/p/15757883.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   tmjyh09  阅读(104)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起