4 条题解
- 
  2
#include <iostream> using namespace std; const int N = 60; int a[N][N]; int dp[N][N][N][N]; int main(){ 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 x = 1; x <= n; x ++){ for(int y = 1; y <= m; y++){ int *t; t = &dp[i][j][x][y]; *t = max(*t, dp[i-1][j][x][y-1]); *t = max(*t, dp[i-1][j][x-1][y]); *t = max(*t, dp[i][j-1][x-1][y]); *t = max(*t, dp[i][j-1][x][y-1]); *t += a[i][j] + a[x][y]; if(i == x && j == y) *t -= a[x][y]; } } } } cout << dp[n][m][n][m]; } 
信息
- ID
 - 186
 - 时间
 - 1000ms
 - 内存
 - 128MiB
 - 难度
 - 3
 - 标签
 - 递交数
 - 77
 - 已通过
 - 44
 - 上传者