思路感觉是对的
#include<bits/stdc++.h>
using namespace std;
long long m[21][21]={0};
int mm[21][21];
int main(){
long long x,y,h,l,te;
cin>>x>>y>>h>>l;
m[1][0]=1;
for(int i=0;i<=x;i++)m[i][0]=1;
for(int i=0;i<=y;i++)m[0][i]=1;
int p[8][2]={{h+1,l-2},{h+2,l-1},{h+2,l+1},{h+1,l+2},{h-1,l-2},{h-2,l-1},{h-2,l+1},{h-1,l+2}};
for(int i=0;i<8;i++){
if(p[i][0]>0&&p[i][1]>0){
mm[p[i][0]][p[i][1]]=-1;
m[p[i][0]][p[i][1]]=0;
}
}
mm[h][l]=-1;
m[h][l]=0;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
te=m[i-1][j]+m[i][j-1];
if(mm[i][j]!=-1){
m[i][j]=te;
}
}
}
cout<<m[x][y];
return 0;
}
"//"那一行下载数据