题解 | #走方格的方案数#

走方格的方案数

https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b

#include <iostream>
#include <vector>
using namespace std;

class Solution{

public:
    int path_cnt(int n, int m){
        vector<vector<int>> dp(n+2, vector<int> (m+2, 0)); // 要留出一个空行
        for (int i = 1; i < n+2; i++) dp[i][1] = 1;
        for (int j = 1; j < m+2; j++) dp[1][j] = 1;

        for (int i = 2; i <= n+1; i++){
            for (int j = 2; j <= m+1; j++){
                dp[i][j] = dp[i-1][j-1]*2 + dp[i-2][j] + dp[i][j-2]; // 左边,上变,对角过来
            }
        }

        return dp[n+1][m+1];
    }

};

int main() {
    int n,m;
    cin >> n >> m;
    Solution res;
    cout << res.path_cnt(n, m) << endl;
    
    return 0;
}

全部评论

相关推荐

04-18 15:58
已编辑
门头沟学院 设计
kaoyu:这一看就不是计算机的,怎么还有个排斥洗碗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务