@[small_dongpo](/user/741732)
```cpp
#include<bits/stdc++.h>
using namespace std;
int f[110][60][60];
int a[60][60];
int main()
{
int n, m;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= m; j ++) scanf("%d", &a[i][j]);
f[1][1][1] = a[1][1];
for (int p = 2; p <= n + m - 1; p ++)
for (int i = 1; i <= n && i <= p; i ++)
for (int j = 1; j <= n && j <= p; j ++){
if (i == 1 && j == 1) continue;
f[p][i][j] = max(max(f[p - 1][i][j], f[p - 1][i - 1][j]), max(f[p - 1][i][j - 1], f[p - 1][i - 1][j - 1]));
f[p][i][j] += i == j ? a[i][p - i + 1] : a[i][p - i + 1] + a[j][p - j + 1];
}
printf("%d\n", f[n + m - 1][n][n]);
return 0;
}
``````
加一下,团队急需人才https://www.luogu.com.cn/team/74508
by safdsfdeaf @ 2024-04-03 17:46:00
n和m最大是50,那么p可以到99.假如当前i是2,p是98.那么j = 98 - 2= 96不会越界吗?应该是数据太弱了吧?
by Touris2ts @ 2024-04-05 09:47:14
@[small_Dongpo](/user/741732) 捕捉到野生张蒟佬
by riki1230 @ 2024-04-06 22:24:40