美团点评: 网格走法数目

题目链接: 网格走法数目

dfs,朝下和朝右两个方向搜索就可以了。

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 12;
int map[maxn][maxn];
int dfs(int x,int y);
int x,y,ans;
int aimx,aimy;            //目的地的坐标
int main()
{
    while(cin>>x>>y)
    {
    	ans=0;
        aimx=x;
        aimy=y;
        dfs(0,0);        //从(0,0)开始搜索
        cout<<ans<<endl;
    }
    return 0;
}
int dfs(int x,int y)
{ 
//	cout<<"("<<x<<","<<y<<") "<<endl;
    if(x>aimx || y>aimy) return 0;    //超过边境了
    if(x==aimx && y==aimy )            //走到目的地了
    {
        ans++;
        return 0;
    }
    dfs(x+1,y);                        //朝下走
    dfs(x,y+1);                        //朝右走
    return 0;
}



猜你喜欢

转载自blog.csdn.net/q1122333/article/details/82962035
今日推荐