代码:
#include <iostream>
using namespace std;
int main()
{
int bx,by,mx,my;cin>>bx>>by>>mx>>my;
long long a[21][21]={0};
bool flag[21][21]={0};a[0][0]=1;
flag[mx][my]=1;flag[mx+1][my+2]=1;flag[mx-1][my+2]=1;
flag[mx+2][my+1]=1;flag[mx-2][my+1]=1;flag[mx+2][my-1]=1;
flag[mx-2][my-1]=1;flag[mx-1][my-2]=1;flag[mx+1][my-2]=1;//暴力标记马点
for(int i=0;i<=bx;i++)
{
for(int j=0;j<=by;j++)
{
if(flag[i][j]==1)continue;//排除马点
long long t=a[i][j-1]+a[i-1][j];
a[i][j]+=t;//每个点的路径数等于左边与上面的路径数之和
}
}
cout<<a[bx][by];
return 0;
}
大神救救我