求助,这里WA了!!!

P1002 [NOIP2002 普及组] 过河卒

边界的设置问题 ``` for(int i=0,j=0;i<=bx;i++) a[i][j]=1; ``` 这个是第一列的边界,这里要加一句 ```cpp if (sb(i,j)) a[i][j]=0; ``` 第一行的边界也要同样处理。
by mooktian @ 2023-02-12 19:34:36


@[mooktian](/user/890321) 上面的方法确实有效,多拿了20分,仍然有4个点WA了,请改正! ```c++ #include<stdio.h> long long a[25][25],bx,by,cx,cy; bool sb(int i,int j){ if(i==cx&&j==cy||i==cx-2&&j==cy+1||i==cx-1&&j==cy+2||i==cx+1&&j==cy+2||i==cx+2&&j==cy+1||i==cx+2&&j==cy-1||i==cx+1&&j==cy-2||i==cx-1&&j==cy-2||i==cx-2&&j==cy-1) return 1; return 0; } int main(){ scanf("%d%d%d%d",&bx,&by,&cx,&cy); for(int i=0,j=0;i<=bx;i++){ if (sb(i,j)) a[i][j]=0; else a[i][j]=1; } for(int i=0,j=0;j<=by;j++){ if (sb(i,j)) a[i][j]=0; else a[i][j]=1; } for(int i=1;i<=bx;i++){ for(int j=1;j<=by;j++){ if(sb(i,j)) a[i][j]=0; else a[i][j]=a[i-1][j]+a[i][j-1]; } } printf("%lld",a[bx][by]); return 0; } ```
by LiJinLin_AFO @ 2023-02-15 12:59:56


|