tj
2025-07-27 20:12:45
发布于:浙江
7阅读
0回复
0点赞
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
const int MAXN = 1005;
int dp[MAXN][MAXN];
char grid[MAXN][MAXN];
int main() {
int n, m;
cin >> n >> m;
for (int i = 0; i < n; ++i) {
cin >> grid[i];
}
if (grid[0][0] == 'X') {
cout << 0 << endl;
return 0;
}
dp[0][0] = 1;
for (int j = 1; j < m; ++j) {
if (grid[0][j] == 'X') {
dp[0][j] = 0;
break;
} else {
dp[0][j] = 1;
}
}
for (int i = 1; i < n; ++i) {
if (grid[i][0] == 'X') {
dp[i][0] = 0;
break;
} else {
dp[i][0] = 1;
}
}
for (int i = 1; i < n; ++i) {
for (int j = 1; j < m; ++j) {
if (grid[i][j] == 'X') {
dp[i][j] = 0;
} else {
dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
}
cout << dp[n-1][m-1] << endl;
return 0;
}
这里空空如也
有帮助,赞一个