# 求助帖 60分 3,4WA
查看原帖
# 求助帖 60分 3,4WA
952055
semon0x522楼主2023/2/26 21:25

我已经考虑了可能的边界情况,代码如下,却仍然通不过3,4

#include<iostream>
#include<algorithm>

using namespace std;
const int N=25;

int n,m,x,y;
int f[N][N];

int main(){
    cin>>n>>m>>x>>y;
    for (int i = 0; i <= n; i++)
    {
        for (int j = 0; j <= m; j++)
        {
        //判断步兵不能经过马本身和一步到达的位置,到这些点的路径数我设为了0
            if ((i==x-1&&j==y-2) ||(i==x-1&&j==y+2)||(i==x+1 &&j==y-2)||(i==x+1&&j==y+2)||(i==x-2 && j==y-1)||(i==x-2 && j==y+1)||(i==x+2&&j==y-1)||(i==x+2&&j==y+1)||(i==x&&j==y))
            {
                f[i][j]=0;
            }
            //判断边界条件
            else{
            //起点位置
                if(i==0&&j==0) f[i][j]=1;
                //当在y轴上,只能由左边移动过来
                else if(i!=0&&j==0)f[i][j]=f[i-1][j];
                //当在x轴上,只能由上边移动过来
                else if(j!=0&&i==0)f[i][j]=f[i][j-1];
                //其余情况
                else f[i][j]=f[i-1][j]+f[i][j-1];
                }
        }
        }
    cout<<f[n][m];
    return 0;
}

我无法判断我的问题出现在那些地方,数组也不会越界,边界条件也有考虑。 恳请批评帮助,万分感谢

2023/2/26 21:25
加载中...