求助啊!同样的题目,洛谷过了,ybt(一本通)没过!

P1002 [NOIP2002 普及组] 过河卒

应该是头文件,一本通好像不支持万能头文件
by Little_Lily @ 2021-05-11 08:53:51


你的程序中 ```cpp a[x][y] = a[x + 2][y + 1] = a[x + 2][y - 1] = a[x - 2][y + 1] = a[x - 2][y - 1] = 1; ``` 其中 $x-2$ 可能造成数组越界导致运行错误
by Link_Space @ 2021-05-11 09:01:18


@[孙励岩](/user/359252) 我以前ybt都用的万能头,没有错啊
by ImposterAnYu @ 2021-05-11 09:08:37


@[Link_Space](/user/278481) ```cpp #include<bits/stdc++.h> using namespace std; unsigned long long n,m,x,y,i,j,b[25][25]; bool a[25][25]; int main(){ cin >> n >> m >> x >> y; x += 2; y += 2; n += 2; m += 2; a[x][y] = a[x + 2][y + 1] = a[x + 2][y - 1] = a[x - 2][y + 1] = a[x - 2][y - 1] = 1; a[x + 1][y + 2] = a[x - 1][y + 2] = a[x + 1][y - 2] = a[x - 1][y - 2] = 1; b[2][2] = 1; for(i = 3; i <= n; i++){ if(a[i][2]) continue; b[i][2] = b[i - 1][2]; } for(i = 3; i <= m; i++){ if(a[2][i]) continue; b[2][i] = b[2][i - 1]; } for(i = 3; i <= n; i++){ for(j = 3; j <= m; j++){ if(a[i][j]) continue; b[i][j] = b[i - 1][j] + b[i][j - 1]; } } cout<< b[n][m] ; return 0; } ``` 改完过了,谢啦~
by ImposterAnYu @ 2021-05-11 09:11:44


|