1 条题解

  • 0
    @ 2023-7-5 12:40:01
    #include <bits/stdc++.h>
    using namespace std;
    int bx, by, mx, my; // B点坐标(bx,by) 马坐标(mx,my)
    long long f[25][25];
    // 返回是否被马统治
    bool check(int x, int y)
    {
        if (abs(x - mx) == 1 && abs(y - my) == 2 ||
            abs(x - mx) == 2 && abs(y - my) == 1)
            return true;
        if (x == mx && y == my)
            return true;
        return false;
    }
    int main()
    {
        cin >> bx >> by >> mx >> my;
        for (int i = 0; i <= bx; i++)
            for (int j = 0; j <= by; j++)
            {
                if (check(i, j))
                    f[i][j] = 0;
                else if (i == 0 && j == 0)
                    f[i][j] = 1;
                else if (i == 0)
                    f[i][j] = f[i][j - 1]; // 第一行
                else if (j == 0)
                    f[i][j] = f[i - 1][j]; // 第一列
                else
                    f[i][j] = f[i - 1][j] + f[i][j - 1];
            }
        cout << f[bx][by];
        return 0;
    }
    
    • 1

    信息

    ID
    533
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    48
    已通过
    19
    上传者