记录编号 137491 评测结果 AAAAAAAAAA
题目名称 跳马问题 最终得分 100
用户昵称 GravatarVincent 是否通过 通过
代码语言 C++ 运行时间 0.015 s
提交时间 2014-11-04 20:44:36 内存使用 0.23 MiB
显示代码纯文本
#include <cstdio>
#include <cstring>
#define MAXN 30
using namespace std;
 
int f[MAXN][MAXN]={0};
int m,n;
 
int dp(int x,int y){
    if ( x<1|| y<1 || x>m || y>n) return 0;
    int &ans = f[x][y];
    if (ans!=-1) return ans;
    if (x==1 && y==1) ans=1;
    else ans=dp(x-1,y-2)+dp(x-2,y-1)+dp(x+1,y-2)+dp(x+2,y-1);
    return ans;
} 
 
int main(){
    freopen("horse.in","r",stdin);
    freopen("horse.out","w",stdout);
    scanf("%d%d",&m,&n);
    memset(f,-1,sizeof(f));
    printf("%d\n",dp(m,n));
    return 0;
}