洛谷马拦过河卒
第一个测试点过不了
#include<iostream>
using namespace std;
long long horseroute[23][23];
long long soldierroute[23][23];
void horse(int x,int y)
{
horseroute[x][y]=1;
horseroute[x-2][y-1]=1;
horseroute[x-2][y+1]=1;
horseroute[x-1][y-2]=1;
horseroute[x-1][y+2]=1;
horseroute[x+1][y-2]=1;
horseroute[x+1][y+2]=1;
horseroute[x+2][y-1]=1;
horseroute[x+2][y+1]=1;
}
int main()
{
int bx,by,horsex,horsey;
cin>>bx>>by>>horsex>>horsey;
horse(horsex+1,horsey+1);
soldierroute[1][1]=1;
for(int i=1;i<=(bx+1);i++)
{
for(int j=1;j<=(by+1);j++)
{
if((horseroute[i][j]!=1)&&(soldierroute[i][j]==0))
{
soldierroute[i][j]=soldierroute[i-1][j]+soldierroute[i][j-1];
}
}
}
cout<<soldierroute[bx+1][by+1];
}