记录编号 250515 评测结果 AAAAAAAAAA
题目名称 219.[NOIP 2008]传纸条 最终得分 100
用户昵称 Go灬Fire 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2016-04-15 11:00:35 内存使用 0.00 MiB
显示代码纯文本
#include<cmath>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=100;
int f[maxn*2][maxn][maxn],a[maxn][maxn],n,m;
void Init();
int _max(int,int,int,int);
int PT(){
	freopen("message.in","r",stdin);
	freopen("message.out","w",stdout);
	Init();
	return 0;
}
int PS=PT();
int main(){
	;
}
void Init(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			scanf("%d",&a[i][j]);
		}
	}
	for(int k=1;k<n+m-2;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(i==j)continue;
				f[k][i][j]=_max(f[k-1][i][j],f[k-1][i-1][j],f[k-1][i-1][j-1],f[k-1][i][j-1])+a[i][k+2-i]+a[j][k+2-j];
			}
		}
	}
	int ans=max(f[n+m-3][n][n-1],f[n+m-3][n-1][n]);
	printf("%d ",ans);
}
int _max(int a,int b,int c,int d){
	int ans=0;
	ans=max(ans,a);
	ans=max(ans,b);
	ans=max(ans,c);
	ans=max(ans,d);
	return ans;
}