- gf24131 的博客
九章算术 (c++)其一:【例3.6】过河卒(Noip2002)
- 2025-5-7 22:38:33 @
#include <bits/stdc++.h>
using namespace std;
long long a[100][100];
bool mod[100][100];
int main(){
int n,m,mo,md;
cin>>n>>m>>mo>>md;
mo+=1;md+=1;
n+=1;m+=1;
mod[mo][md]=1;
mod[mo+1][md+2]=1;
mod[mo+1][md-2]=1;
mod[mo-1][md+2]=1;
mod[mo-1][md-2]=1;
mod[mo+2][md+1]=1;
mod[mo+2][md-1]=1;
mod[mo-2][md+1]=1;
mod[mo-2][md-1]=1;
a[1][1]=1;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
if (i==1&&j==1)j++;
if (mod[i][j]==0)
a[i][j]=a[i-1][j]+a[i][j-1];
}
}
cout<<a[n][m];
return 0;
}