题解 GDFZOJ 【661】 过河卒
GDFZOJ原题地址戳这儿
洛谷原题地址戳这儿
一、审题
二、做题
我们首先定义状态,我们设
首先我们知道
可是我们还有“马”没有处理呢!其实这个也很简单,因为没法走到被马控制的点,所以只需要针对马控制的点
所以我们就顺利地推出来了
三、代码
#include <bits/stdc++.h>
using namespace std;
long long int a,b,n,m,aa[22][22],zou[23][23];
void bj(long long int x,long long int y)
{
zou[x][y]=1;
zou[x-1][y-2]=1;
zou[x-2][y-1]=1;
zou[x-2][y+1]=1;
zou[x-1][y+2]=1;
zou[x+1][y-2]=1;
zou[x+2][y-1]=1;
zou[x+2][y+1]=1;
zou[x+1][y+2]=1;
}
int main()
{
cin>>n>>m>>a>>b;
bj(a,b);
aa[1][0]=1;
for(int i=1;i<=n+1;++i)
{
for(int j=1;j<=m+1;++j)
{
aa[i][j]=aa[i-1][j]+aa[i][j-1];
if(zou[i-1][j-1]) aa[i][j]=0;
}
}
printf("%lld",aa[n+1][m+1]);
return 0;
}