第一、五个样例有误,求大佬看看
#include<bits/stdc++.h>
#define int long long
using namespace std;
long long mx,my,bx,by;
long long dx[8]={1,1,-1,-1,2,2,-2,-2};
long long dy[8]={2,-2,2,-2,1,-1,1,-1};
bool vis[21][21];
long long f[21][21];
signed main()
{
memset(vis,false,sizeof(vis));
cin>>bx>>by>>mx>>my;
for(long long i=0;i<8;i++)
{
long long xx=dx[i]+mx;
long long yy=dy[i]+my;
if(xx>=0&&yy>=0)
{
vis[xx][yy]=true;
}
}
vis[mx][my]=true;
vis[0][0]=true;
f[0][0]=1;
for(long long j=1;j<=bx;j++)
{
if(vis[0][j]==1)break;
f[0][j]=1;
}
for(long long j=1;j<=by;j++)
{
if(vis[j][0]==1)break;
f[j][0]=1;
}
for(long long i=1;i<=bx;i++)
{
for(long long j=1;j<=by;j++)
{
if(vis[i][j]==false)
{
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
}
cout<<f[bx][by];
return 0;
}