动规真得好好练练了 最简单的动规都把递推式想错了可恶啊
#include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; //dp[i][j]=k 表示从原点走到网格下表(i, j)的方案数有k钟 vector<vector<int> > dp(n+1, vector<int>(m+1, 0)); //初始化第一行第一列 for(int i = 1; i <= n; ++i) dp[i][0] = 1; for(int j = 1; j <= m; ++j) dp[0][j] = 1; for(int i = 1; i <= n; ++i) { for(int j = 1; j <= m; ++j) { dp[i][j] = dp[i-1][j] + dp[i][j-1]; } } cout << dp[n][m] << endl; return 0; }