动规真得好好练练了 最简单的动规都把递推式想错了可恶啊

#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;
}