求助!输出总是0怎么回事啊?
查看原帖
求助!输出总是0怎么回事啊?
460715
cosmos31415926楼主2022/3/29 22:20

求助各位大佬,不管我怎么输入都只会输出0。 代码:

#include <bits/stdc++.h>
using namespace std;
int dir[8][2] = {{1,2},{2,1},{-1,2},{-2,1},{1,-2},{-2,1},{-1,-2},{-2,-1}};
int a[1000][1000];
int bx, by, hx, hy, ans = 0;
bool border = false;
void dp(int x, int y)
{
    if (a[x][y] == -1) return;
    a[x][y] = max(a[x + 1][y], 0) + max(a[x][y + 1], 0);
    if (x != 0) dp(x - 1, y);
    if (y != 0) dp(x, y - 1);
    if (x == 0 and y == 0)
    {
        ans = a[0][0];
        border = true;
    }
    if (border) return;
}
int main()
{
    scanf("%d %d %d %d", &bx, &by, &hx, &hy);
    a[hx][hy] = -1;
    for (int i = 0; i <= 7; i++)
        if (hx + dir[i][0] >= 0 and hy + dir[i][1] >= 0)
            a[hx + dir[i][0]][hy + dir[i][1]] = -1;
    a[bx][by] = 1;
    dp(bx, by);
    printf("%d", ans);
    return 0;
}

对了,如果我犯了很基础的错误,请不要批评地太过严厉,谢谢!

2022/3/29 22:20
加载中...