```cpp
ctrl[dx][dy]=1;
f[0][0]=1;
for(int i=0;i<=bx;i++)
```
by 阿丑 @ 2024-02-26 13:44:35
```cpp
int ctrl[30][30];
```
不是布尔类型
by fanjiayu666 @ 2024-02-26 13:47:38
思路是对的
~~看出来是抄书的~~
by fanjiayu666 @ 2024-02-26 13:48:57
```
#include<iostream>
using namespace std;
#define ll long long
ll f[30][30];
bool ctrl[30][30];
const int d[8][2]={{1,2},{-1,2},{1,-2},{-1,-2},{2,1},{-2,1},{2,-1},{-2,-1}};
int main(){
int bx,by,dx,dy;
cin>>bx>>by>>dx>>dy;
ctrl[dx][dy]=1;//马本身的位置你是不是忘了
f[0][0]=1;
//起始为1,不然怎么加都是0
for(int i=0;i<8;i++){
int xx=dx+d[i][0];
int yy=dy+d[i][1];
if(xx>=0&&yy>=0&&xx<=bx&&yy<=by)
ctrl[xx][yy]=1;
}
for(int i=0;i<=bx;i++){
for(int j=0;j<=by;j++){
//坐标从0开始
if(ctrl[i][j]) continue;
if(i!=0) f[i][j]+=f[i-1][j];
if(j!=0) f[i][j]+=f[i][j-1];
}
}
cout<<f[bx][by];
return 0;
}
```
@[Wangyuqi2010](/user/1016748)
希望对你有帮助
by qusia_MC @ 2024-03-01 16:24:16
谢谢大佬@[William2019](/user/787512)
by Wangyuqi2010 @ 2024-03-01 17:11:49