0pts动态规划求调qwqwqwqwqwqwq

P1002 [NOIP2002 普及组] 过河卒

```cpp #include<iostream> using namespace std; #define int long long const int dx[]={1,2,1,2,-1,-2,-1,-2}; const int dy[]={2,1,-2,-1,2,1,-2,-1}; int n,m; int x,y; int dp[25][25]; int ans=-1; signed main(){ cin>>n>>m>>x>>y; dp[x][y]=-1; for(int i=0;i<8;++i){ int xx=x+dx[i]; int yy=y+dy[i]; dp[xx][yy]=-1; } dp[0][0]=0; for(int i=0;i<=n;++i){ for(int j=0;j<=m;++j){ if(dp[i][j]==-1)break; if(i==0){ if(j==0)dp[i][j]=0; else dp[i][j]=max(dp[i][j],dp[i][j-1]); } else{ if(j==0)dp[i][j]=dp[i-1][j]+1; else dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+1; } } } for(int i=0;i<=n;++i){ for(int j=0;j<=m;++j){ cout<<dp[i][j]<<' '; ans=max(ans,dp[i][j]); } cout<<endl; } cout<<ans<<endl; return 0; } ```
by ZJLmath @ 2023-04-08 16:19:36


@[ZJLmath](/user/764672) 是不是要开 long long(
by QAQ__ @ 2023-04-08 16:28:33


@[ZJLmath](/user/764672) 建议再看看题,你是否多输出了一些内容
by Iictiw @ 2023-04-08 16:31:13


此外,你对马能走到的点的判断部分可能出现数组越界
by Iictiw @ 2023-04-08 16:32:46


调试代码没删嘞
by Super_excavator @ 2023-04-08 16:32:49


调试交的时候删了
by ZJLmath @ 2023-04-08 16:36:24


@[ZJLmath](/user/764672) 你这个数组里要从1开始枚举吧,反正你这样的话27/28行很似乎会出现dp[-1]
by wjh2022 @ 2023-04-08 16:46:59


|