比赛 搜索题... 评测结果 C
题目名称 跳马问题 最终得分 0
用户昵称 Vincent 运行时间 0.000 s
代码语言 C 内存使用 0.00 MiB
提交时间 2014-11-04 19:37:07
显示代码纯文本
  1. #include <cstdio>
  2. #include <cstring>
  3. #define MAXN 30
  4. using namespace std;
  5.  
  6. int f[MAXN][MAXN]={0};
  7. int m,n;
  8.  
  9. int dp(int x,int y){
  10. if ( x<1|| y<1 || x>m || y>n) return 0;
  11. int &ans = f[x][y];
  12. if (ans!=-1) return ans;
  13. if (x==1 && y==1) ans=1;
  14. else ans=dp(x-1,y-2)+dp(x-2,y-1)+dp(x+1,y-2)+dp(x+2,y-1);
  15. return ans;
  16. }
  17.  
  18. int main(){
  19. freopen("horse.in","r",stdin);
  20. freopen("horse.out","w",stdout);
  21. scanf("%d%d",&m,&n);
  22. memset(f,-1,sizeof(f));
  23. printf("%d\n",dp(m,n));
  24. return 0;
  25. }