标控制点的x和y放反了
```cpp
#include<iostream>
using namespace std;
const int CON[2][9]={{2,1,-1,-2,-2,-1,1,2,0},{1,2,2,1,-1,-2,-2,-1,0}} ;
long long int a[1000][1000]={0};
int flag[1000][1000]={0};
int main()
{
int bx,by,hx,hy;
cin>>bx>>by>>hx>>hy;
for(int i=0;i<9;i++)
{
if(hx+CON[0][i]<=bx&&hy+CON[1][i]<=by&&hx+CON[0][i]>=0&&hy+CON[1][i]>=0)
{
int x=hx+CON[0][i];
int y=hy+CON[1][i];
flag[x][y]=1;
}
}
a[0][0]=1;
for(int i=0;i<=bx;i++)
{
for(int j=0;j<=by;j++)
{
if(i)
{
a[i][j]+=a[i-1][j];}
if(j)
{
a[i][j]+=a[i][j-1];}
a[i][j]*=!flag[i][j];
}
}
printf("%lld",a[bx][by]);
}
```
by liuzihao1234 @ 2023-10-28 13:05:52