AcWing 5493. 过河卒
原题链接
简单
作者:
贩卖日落_02
,
2025-04-02 21:40:55
· 河南
,
所有人可见
,
阅读 3
#include<bits/stdc++.h>
using namespace std;
const int d[8][2] = {{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}};
bool c[25][25];
long long f[25][25],n,m,x,y;
int main(){
cin>>n>>m>>x>>y;
c[x][y] = true;
for (int i =0;i<8;i++){
int x1=x+d[i][0];
int y1 = y+d[i][1];
if(x1>=0&&x1<=n&&y1>=0&&y1<=m)
c[x1][y1]=true;
}
f[0][0] = 1;
for(int i =0;i<=n;i++)
for(int j=0;j<=m;j++){
if(!c[i][j]){
if(i) f[i][j] += f[i-1][j];
if(j) f[i][j] += f[i][j-1];
}
}
cout<<f[n][m];
return 0;
}