比赛 清明时节雨纷纷,今天天气很晴朗 评测结果 AAAAAAAAAA
题目名称 传纸条 最终得分 100
用户昵称 东林桂香 运行时间 0.020 s
代码语言 C++ 内存使用 1.32 MiB
提交时间 2017-04-07 20:17:37
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int m,n;
int a[51][51],f[101][51][51];
int main()
{
	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]);
	f[1][1][1]=a[1][1];
	for(int k=2;k<=n+m-1;k++)
	  for(int x=1;x<=min(m,k);x++)
	    for(int y=1;y<=min(m,k);y++)
	    {
	    	if(x==y)
	    	for(int q=0;q<=1;q++)
	    	  for(int p=0;p<=1;p++)
	    		f[k][x][y]=max(f[k][x][y],f[k-1][x-q][y-p]+a[x][k-x+1]);
			else
		   	for(int i=0;i<=1;i++)
			  for(int j=0;j<=1;j++)
				f[k][x][y]=max(f[k][x][y],f[k-1][x-i][y-j]+a[x][k-x+1]+a[y][k-y+1]);
		}
	printf("%d",f[m+n-1][m][m]);
	fclose(stdin);
	fclose(stdout);
	return 0;
}