AcWing 2067. 走方格
原题链接
简单
作者:
古傲狂生强
,
2020-08-12 15:21:35
,
所有人可见
,
阅读 458
暴索 ( 过了9个数据 )
#include<bits/stdc++.h>
using namespace std;
const int N = 31;
bool st[N][N];
int res;
int dx[2] = {1,0},dy[2] = {0,1};
int n,m;
void dfs(int u,int v)
{
if(u == n-1 && v == m-1)
{
res++;
return ;
}
// 循环遍历操作
for(int i = 0; i < 2; i++)
{
int a = u + dx[i],b = v + dy[i];
// 可以走的情况下
if ((a+1)%2!=0 || (b+1)%2!=0)
{
if(a >= 0 && a < n && b >= 0 && b < m && !st[a][b])
{
st[a][b] = true;
dfs(a,b);
st[a][b] = false;
}
}
}
}
int main()
{
cin >> n >> m;
dfs(0,0);
cout << res << endl;
return 0;
}