边界的设置问题
```
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