60分求调

P1006 [NOIP2008 提高组] 传纸条

n和m搞错了 看我给你调的AC代码 ``` #include<bits/stdc++.h> using namespace std; int m,n,f[115][55][55],vis[55][55]; int M(int a,int b,int c,int d){ return max(a,max(b,max(c,d))); } int main(){ cin>>m>>n; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ cin>>vis[i][j]; } } for(int l=1;l<=m+n-1;l++){ for(int i=1;i<=m;i++){ for(int j=1;j<=m;j++){ if(l-i+1<1 || l-j+1<1 || l-i+1>n || l-j+1>n){ continue; } f[l][i][j]=M(f[l-1][i-1][j-1]+vis[i-1][l-i+1]+vis[j-1][l-j+1],f[l-1][i][j-1]+vis[i][l-i]+vis[j-1][l-j+1],f[l-1][i-1][j]+vis[i-1][l-i+1]+vis[j][l-j],f[l-1][i][j]+vis[i][l-i]+vis[j][l-j]); if(i==j) f[l][i][j]-=vis[i][l-i+1]; } } } cout<<f[n+m-1][m][m]; return 0; } ```
by dkh2007 @ 2023-08-11 14:58:42


就是m是x的边界,n是y的边界
by dkh2007 @ 2023-08-11 14:59:27


@[dkh2007](/user/758766) 哦哦懂了!感谢
by Deity_Satan @ 2023-08-11 20:16:12


|