```cpp
#include<cstdio>
long long f[21][21];
using namespace std;
int main()
{
int i,j,n,m,a,b;
scanf("%d%d%d%d",&n,&m,&a,&b);
for(i=0;i<=n;i++)
for(j=0;j<=m;j++)
f[i][j]=1; //初始化
if(a-2>=0&&b-1>=0) f[a-2][b-1]=0;
if(a-2>=0&&b+1<=m) f[a-2][b+1]=0;
if(a-1>=0&&b-2>=0) f[a-1][b-2]=0;
if(a-1>=0&&b+2<=m) f[a-1][b+2]=0;
if(a+1<=m&&b-2>=0) f[a+1][b-2]=0;
if(a+2<=n&&b-1>=0) f[a+2][b-1]=0;
if(a+1<=n&&b+2<=m) f[a+1][b+2]=0;
if(a+1<=n&&b+1<=m) f[a+2][b+1]=0;
f[a][b]=0;
//设定马的控制点
for(i=0;i<=n;i++)
{
for(j=0;j<=m;j++)
{
if(f[i][j])
{
if(i==0&&j==0) continue;
else if(i==0) f[i][j]=f[i][j-1]; //此路有障碍,下行
else if(j==0) f[i][j]=f[i-1][j]; //此路有障碍,右行
else f[i][j]=f[i-1][j]+f[i][j-1];
}
}
}
printf("%lld",f[n][m]);
return 0;
}
```
供参考
~~抄袭 (我能看到你代码,别问为什么,问就是我是管理员)~~
by CSP_AK_zc @ 2023-04-01 20:00:14
@[ImOxygen233](/user/553640)
by CSP_AK_zc @ 2023-04-01 20:00:42
OK,我看一下,谢谢dalao
by Konjac0629 @ 2023-04-01 20:02:22
@[todd6222](/user/36093)
by Konjac0629 @ 2023-04-01 20:03:03