帮忙调一下啊
查看原帖
帮忙调一下啊
73365
安子楼主2020/7/27 21:02

RT

连样例也过不去了

#include <bits/stdc++.h>
using namespace std;
int dp[110][55][55];
int a[100][100];
int maxx(int x,int y,int z,int b)
{
	return max(max(x,y),max(z,b)); 
}
int main() 
{
	int n,m,i,j,k;
	scanf("%d%d",&m,&n);
	for (i=1;i<=m;++i)
	for (j=1;j<=n;++j)
	scanf("%d",&a[i][j]);
	for (i=1;i<=m+n-1;++i)
	for (j=1;j<=m;++j)
	for (k=1;k<=n;++k)
	{
		int x1=j,x2=k,y1=i-k+1,y2=i-j+1;
		if (y1<1||y2<1) continue;
		dp[i][j][k]=maxx(dp[i-1][j][k],dp[i-1][j][k-1],dp[i-1][j-1][k],dp[i-1][j-1][k-1])+a[x1][y1]+a[x2][y2];
		if (x1==x2)
		dp[i][j][k]-=a[x1][y1];
	}
	cout<<dp[n+m-1][m][n]<<endl;
	return 0;
}

2020/7/27 21:02
加载中...