求助!0pts!样例未过!求大佬!

P1002 [NOIP2002 普及组] 过河卒

```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


|