测试点1,5WA,求解

P1002 [NOIP2002 普及组] 过河卒

```c #include <iostream> using namespace std; const int maxn = 25, dx[9]={0,1,1,-1,-1,2,2,-2,-2}, dy[9]={0,2,-2,2,-2,1,-1,1,-1}; int n, m, a, b; long long f[maxn][maxn]; bool blo[maxn][maxn]; int main() { cin>>n>>m>>a>>b; for (int d = 0; d < 9; d++) { int x=a+dx[d],y=b+dy[d]; if(x<0||y<0||x>n||y>m) { continue; } blo[x][y]=true; // 标记控制点 } if (blo[0][0]) // 若起点被控制,总方案为0 { cout<<0<<endl; return 0; } f[0][0]=1; for(int i=0;i<=n;i++) for(int j=0;j<=m;j++) { if(i==0&&j==0||blo[i][j]) { continue; } if(i>0&&f[i-1][j]>0) { f[i][j]=f[i][j]+f[i-1][j]; } if(j>0&&f[i][j-1]>0) { f[i][j]=f[i][j]+f[i][j-1]; } } cout<<f[n][m]<<endl; return 0; } ```
by Linkaifan1227 @ 2024-03-15 22:45:15


参考我的
by Linkaifan1227 @ 2024-03-15 22:45:42


请关注,谢谢!
by Linkaifan1227 @ 2024-03-15 22:53:19


|