20分求助(c++)

P1002 [NOIP2002 普及组] 过河卒

```cpp #include<bits/stdc++.h> #define MAXN 25 using namespace std; long long qipan[MAXN][MAXN]; int ma[MAXN][MAXN]; int pianyi[9][2]={{0,0},{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{-2,1},{-2,-1}}; int m,n,mx,my; int main(){ scanf("%d%d%d%d",&n,&m,&mx,&my); // 1 for(int i=0;i<9;i++){ int tmpx=mx+pianyi[i][0]; int tmpy=my+pianyi[i][1]; if(tmpx>=0&&tmpx<=n&&tmpy>=0&&tmpy<=m){ // 2(虽然逻辑上来讲不改也能过) ma[tmpx][tmpy]=1; } } if(ma[0][0]==1||ma[n][m]==1){ printf("0"); return 0; } qipan[0][0]=1; for(int i=0;i<=n;i++){ for(int j=0;j<=m;j++){ if(ma[i][j]){ continue; } if(i!=0){ qipan[i][j]+=qipan[i-1][j]; } if(j!=0){ qipan[i][j]+=qipan[i][j-1]; } } } printf("%lld",qipan[n][m]); // 3 return 0; } ``````
by 杜都督 @ 2024-02-07 19:37:20


还是20分
by Alex866 @ 2024-02-13 16:10:04


|