- 马拦过河卒
- 2017-06-18 15:19:30 @
#include<bits/stdc++.h>
using namespace std;
int mp[20][20],px,py,n,m,jy[20][20];
int fs(int x,int y){
if(jy[x][y]) return jy[x][y];
if(x==0&&y==0) return 1;
if(x<0||y<0) return 0;
if(x==px&&y==py) return 0;
if(x==px+1&&y==py+2) return 0;
if(x==px+2&&y==py+1) return 0;
if(x==px-1&&y==py-2) return 0;
if(x==px-2&&y==py-1) return 0;
if(x==px+1&&y==py-2) return 0;
if(x==px-2&&y==py+1) return 0;
if(x==px-1&&y==py+2) return 0;
if(x==px+2&&y==py-1) return 0;
return jy[x][y]=fs(x-1,y)+fs(x,y-1);
}
int main(){
scanf("%d%d%d%d",&n,&m,&px,&py);
printf("%d",fs(n,m));
return 0;
}
1 条评论
-
Bill_Yang LV 10 @ 2017-06-19 00:06:48
换一下顺序?
if(x==0&&y==0) return 1; if(x<0||y<0) return 0; if(jy[x][y]) return jy[x][y];
还有似乎需要long long
- 1