题目:https://www.luogu.org/problemnew/show/P1002
#include<bits/stdc++.h>
using namespace std;
const int fx[]={0,-2,-1,1,2,2,1,-1,-2};
const int fy[]={0,1,2,2,1,-1,-2,-2,-1};
int n,m,x,y;
unsigned long long a[35][35];
unsigned long long dp[35][35];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m>>x>>y;
n+=5,m+=5,x+=5,y+=5;
memset(a,0,sizeof(a));
memset(dp,0,sizeof(dp));
a[x][y]=1;
dp[5][5]=1;
for(int i=1;i<=8;i++)
{
a[x+fx[i]][y+fy[i]]=1;
}
for(int i=5;i<=n;i++){
for(int j=5;j<=m;j++)
{
if(a[i][j]==1)continue;
dp[i][j]=max(dp[i][j],dp[i-1][j]+dp[i][j-1]);
}
}
cout<<dp[n][m]<<endl;
}