大佬求助:
#include<bits/stdc++.h>
#define ll long long
#define de double
using namespace std;
ll n,m,x,y;
ll mv[9][2]={{0,0},{1,-2},{2,1},{2,-1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2}};
ll f[100][100];
int main(){
scanf("%lld%lld%lld%lld",&n,&m,&x,&y);
for(ll i=0;i<9;i++){
ll sx=x+mv[i][0];
ll sy=y+mv[i][1];
if(sx>=0&&sx<=n&&sy>=0&&sy<=m)
f[sx][sy]=-1;
}
f[0][0]=1;
for(ll i=0;i<=n;i++)
for(ll j=0;j<=m;j++){
if(i==j&&j==0||f[i][j]<0)
continue;
ll t1=0,t2=0;
if(f[i-1][j]>0)
t1=f[i-1][j];
if(f[i][j-1]>0)
t2=f[i][j-1];
f[i][j]=t1+t2;
}
printf("%lld",f[n][m]);
return 0;
}