1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 using namespace std; 5 const int N=210,inf=1e9; 6 int n,m,k,a[N][N],s[N][N],f[N][N][N],g[N][N][N][3],ans=-inf; 7 int main() 8 { 9 scanf("%d%d%d",&n,&m,&k),k=k*2+1; 10 for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) scanf("%d",&a[i][j]),s[i][j]=s[i-1][j]+a[i][j]; 11 for (int i=1;i<=k;i++) for (int j=1;j<=n;j++) f[0][i][j]=g[0][i][j][0]=g[0][i][j][1]=-inf; 12 for (int i=1;i<=n;i++) 13 for (int j=1;j<=m;j++) 14 { 15 for (int p=1;p<=k;p++) 16 { 17 for (int q=i;q>=1;q--) f[j][p][q]=max(f[j-1][p][q],g[j-1][p-1][q][p%2])+s[i][j]-s[q-1][j]; 18 g[j][p][1][0]=-inf; 19 for (int q=2;q<=i;q++) g[j][p][q][0]=max(g[j][p][q-1][0],f[j][p][q-1]); 20 g[j][p][i][1]=-inf; 21 for (int q=i-1;q>=1;q--) g[j][p][q][1]=max(g[j][p][q+1][1],f[j][p][q+1]); 22 } 23 ans=max(ans,max(f[j][k][i],g[j][k][i][0])); 24 } 25 printf("%d",ans); 26 }
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。