很短吗= =
by a1035719430 @ 2017-09-14 20:59:11
@[kkksc03](/space/show?uid=1) 有人抄题解
by a1035719430 @ 2017-09-14 21:03:05
nonono,我是压行选手
```cpp
#include<iostream>
using namespace std;
const int maxn=51;
int a[maxn][maxn],dp[maxn][maxn][maxn][maxn];
int main()
{
ios::sync_with_stdio(false);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int k=1;k<=n;k++)
for(int l=1;l<=m;l++)
if(i!=k||j!=l){ dp[i][j][k][l]=max(max(
dp[i-1][j][k-1][l],dp[i-1][j][k][l-1]),max(dp[i][j-1][k-1][l],
dp[i][j-1][k][l-1]))+a[i][j]+a[k][l];//cout<<'@'<<dp[i][j][k][l]<<endl;
}
cout<<max(max(
dp[n-1][m][n-1][m],dp[n-1][m][n][m-1]),max(dp[n][m-1][n-1][m],
dp[n][m-1][n][m-1]))<<endl;
return 0;
}
```
by cjtz @ 2017-09-18 19:32:10
```cpp
#include <cstdio>
#include <algorithm>
#define maxn 55
#define FOR(A,B,C) for(int A = B;A<=C;A++)
#define MAX(A,B,C,D) max(max(A,B),max(C,D))
using namespace std;
int m,n,martix[maxn][maxn],dp[maxn][maxn][maxn][maxn];
int main(){
scanf("%d%d",&m,&n);
FOR(i,1,m) FOR(j,1,n) scanf("%d",martix[i]+j);
FOR(a,1,m) FOR(b,1,n) FOR(c,1,m) FOR(d,1,n)
if(a == c && b == d) continue;
else dp[a][b][c][d] = martix[a][b] + martix[c][d] +
MAX(dp[a-1][b][c-1][d],dp[a][b-1][c][d-1],
dp[a-1][b][c][d-1],dp[a][b-1][c-1][d]);
printf("%d",dp[m][n-1][m-1][n]);
}
```
这个怎么样
by xsun2001 @ 2017-09-18 20:28:25
你肯定不能压到只有一行
我是不是说对了
by 啊哈! @ 2017-09-20 19:52:24
P党貌似是可以压到一行的吧。。。。。
by 小手冰凉 @ 2017-09-21 19:37:55
@[洗心革面](/space/show?uid=34604) 洛谷放不下
by 碳六灵 @ 2017-09-21 21:34:36
##是时候测试一下编译器的能力了
```cpp
#include <cstdio>#include <algorithm>#define maxn 55#define FOR(A,B,C) for(int A =B;A<=C;A++)#defineMAX(A,B,C,D) max(max(A,B),max(C,D))using namespace std;int m,n,martix[maxn][maxn],dp[maxn][maxn][maxn][maxn];int main(){scanf("%d%d",&m,&n);FOR(i,1,m) FOR(j,1,n) scanf("%d",martix[i]+j);FOR(a,1,m) FOR(b,1,n) FOR(c,1,m) FOR(d,1,n)if(a == c && b == d) continue;else dp[a][b][c][d] = martix[a][b] + martix[c][d] +MAX(dp[a-1][b][c-1][d],dp[a][b-1][c][d-1],dp[a-1][b][c][d-1],dp[a][b-1][c-1][d]);printf("%d",dp[m][n-1][m-1][n]);}
```
by 权御天下 @ 2017-09-21 22:49:03
##经实测,楼上代码洛谷编译不通过,但是Visual Studio 2015-pro成功编译
~~ 这说明了什么 ~~
by 权御天下 @ 2017-09-21 22:51:22
##我的VS~~不科学~~太强大
by 权御天下 @ 2017-09-21 22:52:57