#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
long long f[9][2]={{1,2},{-1,2},{1,-2},{-1,-2},{2,1},{-2,1},{2,-1},{-2,-1},{0,0}},n,m,x,y,dp[30][30];
bool b[30][30];
int main(){
cin>>n>>m>>x>>y;
n+=2;
m+=2;
x+=2;
y+=2;
dp[2][2]=1;
for(int i=0;i<9;i++) b[x+f[i][0]][y+f[i][1]]=1;
for(int i=2;i<=n;i++){
if(b[i][2])break;
dp[i][2]=1;
}
for(int i=2;i<=m;i++){
if(b[2][i])break;
dp[2][i]=1;
}
for(int i=3;i<=n;i++){
for(int j=3;j<=m;j++){
if(b[i][j])continue;
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
cout<<dp[n][m];
return 0;
}
luoguP1002过河卒题解
最新推荐文章于 2024-06-16 22:47:03 发布