感觉思路没什么大问题,但是全WA了。
#include<bits/stdc++.h>
using namespace std;
int ex,ey,mx,my;
long long dp[25][25];
bool check(int x,int y){
if ((x==mx-1 and y==my-2) or (x==mx+1 and y==my-2) or (x==mx+1 and y==my+2)or (x==mx-1 and y==my+2) or (x==mx-2 and y==my-1) or (x==mx+2 and y==my-1) or (x==mx+2 and y==my+1) or (x==mx-2 and y==my+1)) return 1;
else return 0;
}
int main(){
cin>>ex>>ey>>mx>>my;
dp[0][0]=1;
for (int i=0;i<=ex;i++){
for (int j=0;j<=ey;j++){
if (check(i,j)==0){
if (i!=0) dp[i][j]+=dp[i-1][j];
if (j!=0) dp[i][j]+=dp[i][j-1];
}
}
}
cout<<dp[ex][ey];
return 0;
}