样例不过求调
查看原帖
样例不过求调
1286053
Nostopathy楼主2024/3/17 09:58
#include <iostream>
#define int long long int
#define TRUE 1
#define FALSE 0
using namespace std;

const int E1[9] = {0, -2, -1, 1, 2, 2, 1, -1, -2}, E2[9] = {0, 1, 2, 2, 1, -1, -2, -2, -1}; // ??? ??? ?????
int I1, I2, J1, J2, DP[45][45], i, j;
bool Block[45][45];

signed main () {
    ios::sync_with_stdio(FALSE);
    cin.tie(0);
    cout.tie(0);
    
    cin >> I1 >> I2 >> J1 >> J2;
    I1 += 2, I2 += 2, J1 += 2, J2 += 2, DP[2][1] = 1, Block[J1][J2] = TRUE;
    for (i = 1; i <= 8; ++i)
        Block[J1 + E1[i]][J2 + E2[i]] = TRUE; // ???? - ???.
    
    for (i = 2; i <= I1; ++i) {
        for (j = 2; j <= I2; ++j) {
            if (Block[i][j])
                continue;
            DP[i][j] = DP[i - 1][j] + DP[i][j - 1];
                // ????? ?????????? ????????
        }
    }
    
    cout << DP[J1][J2];
    return 0;
}

谢谢,QaQ

2024/3/17 09:58
加载中...