Files
python/TangDou/CSP-S/T1/275.cpp

27 lines
952 B
C++
Raw Normal View History

2025-08-30 18:35:01 +08:00
#include <bits/stdc++.h>
using namespace std;
const int N = 51;
int n, m, f[N][N][N][N], a[N][N], x;
int main() {
int i1, i2, j1, j2;
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) cin >> a[i][j];
for (i1 = 1; i1 <= n; i1++)
for (j1 = 1; j1 <= m; j1++)
for (i2 = 1; i2 <= n; i2++)
for (j2 = 1; j2 <= m; j2++) {
int x = 0;
x = max(x, f[i1][j1 - 1][i2][j2 - 1]);
x = max(x, f[i1 - 1][j1][i2 - 1][j2]);
x = max(x, f[i1][j1 - 1][i2 - 1][j2]);
x = max(x, f[i1 - 1][j1][i2][j2 - 1]);
if (i1 == i2 && j1 == j2)
f[i1][j1][i2][j2] = x + a[i1][j1];
else
f[i1][j1][i2][j2] = x + a[i1][j1] + a[i2][j2];
}
cout << f[n][m][n][m];
return 0;
}