美團點評: 網格走法數目
阿新 • • 發佈:2018-11-24
題目連結: 網格走法數目
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; }