822. 走方格(acwing)

题目:

先讲变量

n:右下角的x值

m:右下角的y值

ans:答案(有几种可能)

a数组:用来存储向下和向右的动作。

x:所在的位置的x值

y:所在位置的y值

x1:下一步可以走到位置的x值

y1:下一步可以走到位置的y值

题型:经典dfs。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,ans=0,a[10][10]={{0,1},{1,0}};
void d(int x,int y)
{
    if(x==n&&y==m)
    {
        ans++;
        return;
    }
    else
    {
        for(int i=0;i<2;i++)
        {
            int x1=x+a[i][1],y1=y+a[i][0];
            if(x1<=n&&x1>=0&&y1<=m&&y1>=0)
            {
                d(x1,y1);
            }
        }
    }
}
int main()
{
    cin>>n>>m;
    d(0,0);
    cout<<ans;
    return 0;
}

 

posted @ 2022-02-05 10:09  王浩泽  阅读(42)  评论(0编辑  收藏  举报