@[黑曜守护Violet](/space/show?uid=108652) 这题不是DP吗?思路不对吧。
by Sai0511 @ 2018-09-18 19:39:09
@[黑曜守护Violet](/space/show?uid=108652)
```cpp
#include<bits/stdc++.h>
#define cdint __int128
using namespace std;
cdint i,j,n,k,m,jg;
cdint dp[100][100],a[100][100];
namespace Fastio{
inline cdint read(){
cdint x=0,f=1;char c=getchar();
while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}
while(isdigit(c)) {x=x*10+c-48;c=getchar();}
return x;
}
void write(cdint x){
if(x<0){putchar('-');x=-x;}
if(x/10>0) write(x/10);
putchar(x%10+48);
return;
}
}
using namespace Fastio;
int main(){
n=read();m=read();
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
a[i][j]=read();
for(i=1;i<=n;i++){
for(int ii=1;ii<=n;ii++){
for(int jj=1;jj<=m;jj++)
dp[ii][jj]=0;
}
for(j=0;j<=m;j++){
for(k=1;k+j<=m;k++)
dp[k][j+k]=max(2*dp[k+1][j+k]+2*a[i][k],2*dp[k][j+k-1]+2*a[i][j+k]);
}
jg+=dp[1][m];
}
write(jg);
}
```
by Sai0511 @ 2018-09-18 19:40:18