样例1我下载下来看答案是对的啊?为什么WA,求助!!!
查看原帖
样例1我下载下来看答案是对的啊?为什么WA,求助!!!
524191
Man_CCNU楼主2021/11/2 08:45
#include<iostream>

using namespace std;

long long a[30][30], f[30][30], n, m;

void setXY(int x, int y)
{
    int dx[8] = { -2,-2,-1,-1,+1,+1,+2,+2 };
    int dy[8] = { -1,1,-2,2,-2,2,-1,1 };
    for (int i = 0; i <= 8; i++) {
        if (x + dx[i] >= 0 && x + dx[i] <= n && y + dy[i] >= 0 && y + dy[i] <= m) {
            a[x + dx[i]][y + dy[i]] = -1;
        }
    }
    a[x][y] = -1;

    return;
}
int main()
{
    int x, y;
    cin>>n>>m>>x>>y;
    setXY(x, y);
    f[0][0] = 1;
    for (int i = 1; i <= n; i++) {
        if (a[i][0] != -1) f[i][0] = f[i - 1][0];
        else f[i][0] = 0;
    }
    for (int i = 1; i <= m; i++) {
        if (a[0][i] != -1) f[0][i] = f[0][i - 1];
        else f[0][i] = 0;
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            if (a[i][j] != -1) f[i][j] = f[i - 1][j] + f[i][j - 1];
            else f[i][j] = 0;
        }
    }
    cout << f[n][m] << endl;

    return 0;
}
2021/11/2 08:45
加载中...