2019-03-07

#include
#include
using namespace std;
const int maxn = 21;
int go[maxn][maxn];
int dp[maxn][maxn];
int n,m,x,y;
bool ok(int i,int j)
{
if(i>n || j>m) return 0;
if(i==x && j==y) return 0;
if(abs(i-x)==2 && abs(j-y)==1) return 0;
if(abs(i-x)==1 && abs(j-y)==2) return 0;
return 1;
}
int main(void)
{
cin >> n >> m >> x >> y;
dp[0][0]=1;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
if(ok(i+1,j)) dp[i+1][j]+=dp[i][j];
if(ok(i,j+1)) dp[i][j+1]+=dp[i][j]; 
} 
} 
cout << dp[n][m];
return 0; 
} 

你可能感兴趣的:(2019-03-07)