WA60分 #3#4 WA

P1002 [NOIP2002 普及组] 过河卒

@[Fang_Junyi](/user/215713) 怀疑是 两个 int x 的问题
by xutongwei @ 2020-07-16 17:54:23


@[xutongwei](/user/223588) ```cpp #include <cstdio> #include <cstring> long long f[25][25]; int n,m,x,y; int d[2][9]={{0,-1,-2,-1,-2, 1, 2, 1, 2}, {0,-2,-1, 2, 1, 2, 1,-2,-1}}; bool In(int x_,int y_) { if(x_>=0 && y_>=0 && x_<=n && y_<=m) return 1; return 0; } int main() { scanf("%d%d%d%d",&n,&m,&x,&y); for(int i=0;i<9;i++) if(In(d[0][i]+x,d[1][i]+y)) f[d[0][i]+x][d[1][i]+y]=1; for(int i=0;i<=n;i++) for(int j=0;j<=m;j++) if(f[i][j]!=0) f[i][j]=0; else if(i==0 || j==0) f[i][j]=1; else f[i][j]=f[i-1][j]+f[i][j-1]; printf("%lld\n",f[n][m]); return 0; } ``` R35234389 不对
by 方俊懿 @ 2020-07-16 18:18:06


把马跳的位置赋值为1是什么意思?
by xutongwei @ 2020-07-16 18:19:40


这不是一条路线
by xutongwei @ 2020-07-16 18:20:13


@[Fang_Junyi](/user/215713)
by xutongwei @ 2020-07-16 18:20:20


标记,之后会赋回0。
by 方俊懿 @ 2020-07-16 18:22:50


```cpp if(f[i][j]!=0) f[i][j]=0; ```
by 方俊懿 @ 2020-07-16 18:23:34


@[Fang_Junyi](/user/215713) 应该是边界的问题…… 如果第 0 行有“马的控制点”,那不可能一行都是 1
by xutongwei @ 2020-07-16 18:35:55


```cpp if(f[i][j]!=0)//先判断是不是马的控制点 f[i][j]=0; else if(i==0 || j==0)//再判断是不是在边界 f[i][j]=1; else//最后在加 f[i][j]=f[i-1][j]+f[i][j-1]; ```
by 方俊懿 @ 2020-07-16 18:42:07


不是……
by xutongwei @ 2020-07-16 18:46:23


| 下一页