```cpp
#include<bits/stdc++.h>
#define MAXN 25
using namespace std;
long long qipan[MAXN][MAXN];
int ma[MAXN][MAXN];
int pianyi[9][2]={{0,0},{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{-2,1},{-2,-1}};
int m,n,mx,my;
int main(){
scanf("%d%d%d%d",&n,&m,&mx,&my); // 1
for(int i=0;i<9;i++){
int tmpx=mx+pianyi[i][0];
int tmpy=my+pianyi[i][1];
if(tmpx>=0&&tmpx<=n&&tmpy>=0&&tmpy<=m){ // 2(虽然逻辑上来讲不改也能过)
ma[tmpx][tmpy]=1;
}
}
if(ma[0][0]==1||ma[n][m]==1){
printf("0");
return 0;
}
qipan[0][0]=1;
for(int i=0;i<=n;i++){
for(int j=0;j<=m;j++){
if(ma[i][j]){
continue;
}
if(i!=0){
qipan[i][j]+=qipan[i-1][j];
}
if(j!=0){
qipan[i][j]+=qipan[i][j-1];
}
}
}
printf("%lld",qipan[n][m]); // 3
return 0;
}
``````
by 杜都督 @ 2024-02-07 19:37:20
还是20分
by Alex866 @ 2024-02-13 16:10:04