因为之前的幽默调试,导致我拿到了#1、2、3的数据,加上运行范例共五组数据调试均无误,扔洛谷里就只剩20分了,不太能理解。下附代码
#include <bits/stdc++.h>
using namespace std;
long long m[30][30];
int x, y, hx, hy;
int judgeH(int x, int y) {
int temp = abs(x - hx) + abs(y - hy);
return temp == 0 || temp == 3 && x != hx && y != hy;
}
inline void display() {
for (int i = 0; i <= x; i++) {
for (int j = 0; j <= y; j++) {
printf("%lld ", m[i][j]);
}
printf("\n");
}
printf("\n");
}
int main() {
scanf("%d%d%d%d", &x, &y, &hx, &hy);
x++, y++, hx++, hy++;
//display();
for (int i = 0; i <= x; i++) {
for (int j = 0; j <= y; j++) {
if (judgeH(i, j)) continue;
else if (i == 1 && j == 1) m[i][j] = 1;
else m[i][j] = m[i - 1][j] + m[i][j - 1];
}
//display();
}
//display();
printf("%lld", m[x][y]);
return 0;
}