帮帮我! dp爆0
#include <bits/stdc++.h>
using namespace std;
int mx[9], my[9];
int dp[30][30];
int n, m;
bool cheek(int x, int y) {
for (int i = 0; i <= 8; i++) {
if (x == mx[i] && y == my[i])
return 1;
}
return 0;
}
int main() {
cin >> n >> m >> mx[0] >> my[0];
mx[1] = mx[0] - 2, my[1] = my[0] - 1;
mx[2] = mx[0] - 2, my[2] = my[0] + 1;
mx[3] = mx[0] - 1, my[3] = my[0] - 2;
mx[4] = mx[0] - 1, my[4] = my[0] + 2;
mx[5] = mx[0] + 2, my[5] = my[0] - 1;
mx[6] = mx[0] + 2, my[6] = my[0] + 1;
mx[7] = mx[0] + 1, my[7] = my[0] - 2;
mx[8] = mx[0] + 1, my[8] = my[0] + 2;
if (cheek(0, 0)) {
cout << 0;
return 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == 1 && j == 1) {
dp[i][j] = 1;
continue;
}
if (cheek(i, j)) {
dp[i][j] = 0;
continue;
}
if (i == 1) {
dp[i][j] += dp[i][j - 1];
continue;
}
if (j == 1) {
dp[i][j] += dp[i - 1][j];
continue;
}
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
cout << dp[n][m];
return 0;
}