90分求助

P1006 [NOIP2008 提高组] 传纸条

``` #include<bits/stdc++.h> using namespace std; int a[60][60]; int dp1[120][60][60]; int main() { int n,m,i,j,k,l; cin>>m>>n; for(i=1;i<=m;i++) for(j=1;j<=n;j++) cin>>a[i][j]; for(i=2;i<=m+n;i++) for(j=1;j<=m;j++) for(k=1;k<=m;k++) { if(i<=j||i<=k) continue; dp1[i][j][k]=max(max(dp1[i-1][j][k-1],dp1[i-1][j-1][k]),max(dp1[i-1][j-1][k-1],dp1[i-1][j][k]))+a[j][i-j]+a[k][i-k] ; if(j==k) dp1[i][j][k]-=a[j][i-j]; } cout<<dp1[m+n][m][m]; return 0; } ```
by 幻影学霸刘 @ 2018-12-08 17:15:03


坐标不一定是1到n
by 幻影学霸刘 @ 2018-12-08 17:15:42


|