AcWing 5493. 过河卒
原题链接
简单
作者:
duanrui
,
2024-10-13 20:05:11
,
所有人可见
,
阅读 5
过河卒 DP
#include<bits/stdc++.h>
using namespace std;
using LL = long long;
int n,m,x,y;
int horse[30][30];
LL dp[30][30];
void init()
{
int dx[]={2,1,-1,-2,-2,-1,1,2,0};
int dy[]={1,2,2,1,-1,-2,-2,-1,0};
for(int i=0;i<9;i++)
{
int a = x+dx[i];
int b = y+dy[i];
if(a<=n && a>=0 && b<=m && b>=0)
{
horse[a][b]=1;
}
}
}
int main()
{
cin>>n>>m>>x>>y;
init();
dp[0][0]=1;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
if(i==0&&j==0) continue;
if(horse[i][j]) dp[i][j]=0;
else if(i==0) dp[i][j] = dp[i][j-1];
else if(j==0) dp[i][j] = dp[i-1][j];
else dp[i][j] = dp[i-1][j]+dp[i][j-1];
}
}
cout<<dp[n][m];
return 0;
}