TransferPaper
来源:互联网 发布:mysql 更改用户密码 编辑:程序博客网 时间:2024/05/18 09:41
#include<cstdio>
#include<memory.h>
int good[51][51];
int f[101][51][51];
int main(){
int m,n;
memset(good, 0, sizeof(good));
memset(f, 0, sizeof(f));
scanf("%d%d", &m, &n);
for(int i = 1; i <= m; i++)
for(int j = 1; j <= n; j++)
scanf("%d", &good[i][j]);
for(int k = 1; k <= m + n - 1; k++)
for(int i = 1; i <= k; i++)
for(int j = 1; j <=k; j++){
if(i == j)continue;
if(i-1 != j && f[k-1][i-1][j] > f[k][i][j])f[k][i][j] = f[k-1][i-1][j];
else if(f[k-1][i-1][j-1] > f[k][i][j]) f[k][i][j] = f[k-1][i-1][j-1];
else if(i != j-1 && f[k-1][i][j-1] > f[k][i][j]) f[k][i][j] = f[k-1][i][j-1];
else if(f[k-1][i][j] > f[k][i][j]) f[k][i][j] = f[k-1][i][j];
f[k][i][j] += (good[i][k+1-i] + good[j][k+1-j]);
}
printf("%d", f[m+n-1][m][n-1]);
return 0;
}
#include<memory.h>
int good[51][51];
int f[101][51][51];
int main(){
int m,n;
memset(good, 0, sizeof(good));
memset(f, 0, sizeof(f));
scanf("%d%d", &m, &n);
for(int i = 1; i <= m; i++)
for(int j = 1; j <= n; j++)
scanf("%d", &good[i][j]);
for(int k = 1; k <= m + n - 1; k++)
for(int i = 1; i <= k; i++)
for(int j = 1; j <=k; j++){
if(i == j)continue;
if(i-1 != j && f[k-1][i-1][j] > f[k][i][j])f[k][i][j] = f[k-1][i-1][j];
else if(f[k-1][i-1][j-1] > f[k][i][j]) f[k][i][j] = f[k-1][i-1][j-1];
else if(i != j-1 && f[k-1][i][j-1] > f[k][i][j]) f[k][i][j] = f[k-1][i][j-1];
else if(f[k-1][i][j] > f[k][i][j]) f[k][i][j] = f[k-1][i][j];
f[k][i][j] += (good[i][k+1-i] + good[j][k+1-j]);
}
printf("%d", f[m+n-1][m][n-1]);
return 0;
}