rt,这题跟传纸条不太一样的是它的起点终点都能有数值,所以注意你dp的范围,不要忘记了首尾的值
for(int k=1;k<=m+n;k++){
for(int i=1;i<=min(n,k+1);i++){
for(int j=i+1;j<=min(n,k+1);j++){
if(i!=j){
f[k][i][j]=Getmax(i,j,k) + s[k-i+1][i] + s[k-j+1][j];
}
}
}
}
f[n+m][n][n]=max(f[n+m-1][n][n-1],f[n+m-1][n-1][n]);
cout<<f[n+m][n][n];