给跪了,哪里错了啊,60分,自己下的数据测都对啊!求助

#include

#include

#include

#include

#include

using namespace std;

long long dp[20][20];

int x,y;

void dfs(int x1,int y1)

{

if(dp[x1][y1]>0) return ;

if(abs(x1-x)==2 && abs(y1-y)==1) return ;

if(abs(x1-x)==1 && abs(y1-y)==2) return ;

if(x1==x && y1==y) return ;

if(x1>0) dfs(x1-1,y1);

if(y1>0) dfs(x1,y1-1);

dp[x1][y1]=dp[x1-1][y1]+dp[x1][y1-1];

}

int main()

{

int a,b;

scanf("%d%d",&a,&b);

scanf("%d%d",&x,&y);

dp[0][0]=1;

dfs(a,b);

printf("%d\n",dp[a]);

return 0;

}

3 条评论

  • @ 2014-05-16 15:41:40

    我也想问你

  • @ 2014-05-16 15:41:27

    #include<iostream>
    #include<cstring>
    using namespace std;
    int f[20][20],e[20][20];
    int main()
    {
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    for(int i=0;i<=a;i++)
    {
    for(int j=0;j<=b;j++)
    {
    e[i][j]=1;
    }
    }
    f[0][0]=1;
    e[0][0]=0;
    e[c+1][d+2]=0;
    e[c+1][d-2]=0;
    e[c+2][d-1]=0;
    e[c+2][d+1]=0;
    e[c-1][d+2]=0;
    e[c-1][d-2]=0;
    e[c-2][d+1]=0;
    e[c-2][d-1]=0;
    e[c][d]=0;
    for(int i=0;i<=a;i++)
    {
    for(int j=0;j<=b;j++)
    {
    if(e[i][j]) f[i][j]=f[i-1][j]+f[i][j-1];
    }
    }
    cout<<f[a][b];

    return 0;
    }

  • @ 2012-08-17 11:02:04

    【猜测】你的内存和评测机能比么

    P党路过

  • 1

信息

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