求助为何MLE
查看原帖
求助为何MLE
641047
4607wjq楼主2022/10/26 17:36

思路:记忆化搜索

#include<iostream>  
#include<cmath>
using namespace std;

const int N=1010;
int a[N][N],f[N][N]; bool b[N][N];
int n,m;

int dfs(int x,int y)
{
	if(b[x][y]) return f[x][y];
	int ans=-0x3f3f3f3f;
	if(y>1) ans=max(ans,dfs(x,y-1));
	if(x>1) ans=max(ans,dfs(x-1,y));
	if(x<n) ans=max(ans,dfs(x+1,y));
	f[x][y]=ans+a[x][y];
	b[x][y]=true;
	return f[x][y];
}

int main()
{
	cin>>n>>m;
	b[1][1]=true;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++) cin>>a[i][j];
	}
	f[1][1]=a[1][1];
	
	cout<<dfs(n,m);
	
	return 0;
}
2022/10/26 17:36
加载中...