求大神指导

#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 条评论

  • @ 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

信息

ID
1121
难度
4
分类
动态规划 点击显示
标签
递交数
9572
已通过
3779
通过率
39%
被复制
23
上传者