C++ 代码
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long LL;
const int N = 25;
int n,m,x,y;
LL f[N][N];
bool q[N][N];
int dx[9] = {0, -2, -2, -1, -1, 1, 1, 2, 2};
int dy[9] = {0, -1, 1, -2, 2, -2, 2, -1, 1};
int main()
{
memset(q,false,sizeof(q));
cin>> n >> m >> x >> y;
n += 1, m += 1, x += 1, y += 1;
for(int i = 0; i < 9; i++)
{
int a = x + dx[i], b = y + dy[i];
if (a >= 0 && a <= n && b >= 0 && b <= m)
q[a][b] = true;
}
f[0][1] = 1,f[1][0] = 1;
for(int i = 1; i <= n; i++)
for(int j = 0; j <= m; j++)
if(!q[i][j]) f[i][j] = f[i-1][j] + f[i][j-1];
cout << f[n][m];
}