[AcWing 822] 走方格

image


点击查看代码
#include<iostream>

using namespace std;
int n, m, ans = 0;
void dfs(int x, int y) {
    if (x == n && y == m)   ans ++;
    else {
        if (y < m)     dfs(x, y + 1);
        if (x < n)     dfs(x + 1, y);
    }
}
int main()
{
    cin >> n >> m;
    dfs(0, 0);
    cout << ans;
    return 0;
}

  1. x 和 y 分别表示方格上的坐标,当 x == n && y == m 时表示走到了方格的右下角,执行 ans ++,记录到达的次数
  2. y < m,表示没有走到 y 方向的边界,执行 dfs(x, y + 1) 进行递归搜索
  3. x < n,表示没有走到 x 方向的边界,执行 dfs(x + 1, y) 进行递归搜索
posted @ 2022-04-15 23:07  wKingYu  阅读(37)  评论(0)    收藏  举报