//不同路径: 一个机器人位于一个 m x n 网格的左上角。机器人每次只能向下或者向右移动一步。
// 机器人试图达到网格的右下角。问总共有多少条不同的路径?
#include<iostream>
#include<stack>
#include <vector>
#include<string>
#include<algorithm>
#include<unordered_map>
#include <climits>
#include<queue>
#include<unordered_set>
#include<cctype>
#include <sstream>
#include<set>
using namespace std;
#define maxsize 100
int he(vector<vector<int>> m) {
if (m.size() == 0)
return 0;
if (m[0].size() == 0)
return 0;
vector<vector<int>> dp(m.size(), vector<int>(m[0].size(), 0));
for (int i = 0; i < m.size(); i++) {
dp[i][0] = 1;
}
for (int i = 0; i < m[0].size(); i++) {
dp[0][i] = 1;
}
for (int i = 1; i < m.size(); i++) {
for (int j = 1; j < m[0].size(); j++) {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
return dp[m.size() - 1][m[0].size() - 1];
}
int main() {
vector<vector<int>> m(7, vector<int>(3, 1));
cout << he(m);
return 0;
}