| 记录编号 | 211890 | 评测结果 | AAAAAAAAAA | ||
|---|---|---|---|---|---|
| 题目名称 | 49.跳马问题 | 最终得分 | 100 | ||
| 用户昵称 | 是否通过 | 通过 | |||
| 代码语言 | C++ | 运行时间 | 0.016 s | ||
| 提交时间 | 2015-12-04 13:20:08 | 内存使用 | 0.30 MiB | ||
#include<stdio.h>
int num[30][30]={0},n,m,ans=0;
void dfs(int f1,int f2)
{
if(f1==m&&f2==n)
ans+=num[f1][f2];
else
{
if(f1-2>=1&&f2+1<=n)
{
num[f1-2][f2+1]+=num[f1][f2];
dfs(f1-2,f2+1);
num[f1-2][f2+1]-=num[f1][f2];
}
if(f1-1>=1&&f2+2<=n)
{
num[f1-1][f2+2]+=num[f1][f2];
dfs(f1-1,f2+2);
num[f1-1][f2+2]-=num[f1][f2];
}
if(f1+2<=m&&f2+1<=n)
{
num[f1+2][f2+1]+=num[f1][f2];
dfs(f1+2,f2+1);
num[f1+2][f2+1]-=num[f1][f2];
}
if(f1+1<=m&&f2+2<=n)
{
num[f1+1][f2+2]+=num[f1][f2];
dfs(f1+1,f2+2);
num[f1+1][f2+2]-=num[f1][f2];
}
}
}
int main()
{
freopen("horse.in","r",stdin);
freopen("horse.out","w",stdout);
scanf("%d%d",&m,&n);
num[1][1]=1;
dfs(1,1);
printf("%d\n",ans);
return 0;
}
//MADE BY 仁圣帝皇(WP)