XJOI 1级20段 c++ 矩阵行走

矩阵行走

题目描述:

给定一个n*m格的矩阵,问从左上角走到右下角有多少条不同的路径?

每步你只能向下走或向右走,且只能沿着矩阵的边线行走。

输入格式:一行两个正整数 n,m

输出格式:路径数目 t

约定:1<=n<=10

img


这个递归一下就可以了。
代码如下

#include <iostream>
using namespace std;
int solve(int m, int n, int x, int y)
{
    int res = 0;
    if (x < m) res += solve(m, n, x + 1, y);
    if (y < n) res += solve(m, n, x, y + 1);
    if (x == m && y == n) return 1;
    return res;
}
int main()
{
    int m, n;
    cin >> m >> n;
    cout << solve(m, n, 0, 0);
    return 0;
}

这是一道经典dp问题,每个格子只能由他上边和左边的格子路径数相加得来,你先自己试试,程序一会发你