递推
2024-08-23 10:15:13
发布于:上海
9阅读
0回复
0点赞
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
int r, c;
cin >> r >> c;
vector<string> grid(r);
for (int i = 0; i < r; ++i) {
cin >> grid[i];
}
vector<vector<int>> ways(r, vector<int>(c, 0));
vector<int> prevWays(2, 0);
ways[0][0] = 1;
for (int i = 1; i < r; ++i) {
prevWays[0] = 0;
prevWays[1] = 0;
for (int j = 1; j < c; ++j) {
for (int k = 0; k < i; ++k) {
prevWays[grid[k][j - 1] == 'R' ? 0 : 1] += ways[k][j - 1];
}
ways[i][j] = prevWays[grid[i][j] == 'R' ? 1 : 0];
}
}
cout << ways[r - 1][c - 1] << endl;
return 0;
}
这里空空如也
有帮助,赞一个