求助#5没过,pt80
查看原帖
求助#5没过,pt80
1404229
white_Feng楼主2024/7/23 17:49

#5数据点没过,求助

代码如下

#include <stdio.h>
int main()
{
long long int chess[25][25]={0};
    int m,n,x,y;
    scanf("%d%d%d%d",&m,&n,&x,&y);
    chess[0][0]=1;
    if(x>=2&&y>=1)
    chess[x-2][y-1]=-1;
    if(x>=2)
    chess[x-2][y+1]=-1;
    if(x>=1&&y>=2)
    chess[x-1][y-2]=-1;
    if(x>=1)
    chess[x-1][y+2]=-1;
    if(y>=1)
    chess[x+2][y-1]=-1;
    chess[x+2][y+1]=-1;
    if(y>=2)
    chess[x+1][y-2]=-1;
    chess[x+1][y+2]=-1;
    chess[x][y]=-1;
    for(int i=0;i<m+2;i++)
    {
        for(int j=0;j<m+2;j++)
        {   
            if(chess[i][j]==-1)
            {}
            else if(i==0&&j==0)
            {}
            else if(i==0&&j!=0)
            chess[i][j]=chess[i][j-1];
            else if(i!=0&&j==0)
            chess[i][j]=chess[i-1][j];
            else
            {
                if(chess[i-1][j]!=-1&&chess[i][j-1]!=-1)
                chess[i][j]=chess[i-1][j]+chess[i][j-1];
                else
                chess[i][j]=chess[i-1][j]+chess[i][j-1]+1;
            }
        }    
    }
    if(chess[m][n]!=-1)
    printf("%lld",chess[m][n]);
    else
    printf("0");
    return 0;
}
2024/7/23 17:49
加载中...