记录编号 | 453945 | 评测结果 | AAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | 219.[NOIP 2008]传纸条 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 0.230 s | ||
提交时间 | 2017-09-27 22:05:41 | 内存使用 | 26.13 MiB | ||
#include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<cmath> using namespace std; int n,m; int f[51][51][51][51],a[51][51]; inline void read() { freopen("message.in","r",stdin); freopen("message.out","w",stdout); scanf("%d%d",&m,&n); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) for(int k=1;k<=m;k++) for(int l=1;l<=n;l++) { f[i][j][k][l]=max(max(f[i][j-1][k][l-1],f[i][j-1][k-1][l]),max(f[i-1][j][k-1][l],f[i-1][j][k][l-1]))+a[i][j]+a[k][l]; if(i==k&&j==l)f[i][j][k][l]-=a[i][j]; } printf("%d",f[m][n][m][n]); } int main() { read(); return 0; }