悬赏关注*1,为啥做了啊
查看原帖
悬赏关注*1,为啥做了啊
823725
EZAIJ楼主2024/3/24 17:28
#include<bits/stdc++.h>
using namespace std;

typedef long long LL;
#define N 210

int n,m,sta_y;
LL g[N][N],mem[N][N],ans=-1e9;
int dy[3]={-1,0,1};

LL maxx(LL a,int b){
	return a>b?a:b;
}

void dfs(int x,int y,int s){
	if(mem[x][y]) return;
	s+=g[x][y];
	if(x==1){
		ans=maxx(ans,s);
		mem[x][y]=1;
		return;
	}
	if(x<1||y<1||x>n||y>m) return;
	mem[x][y]=1; 
	for(int i=0;i<3;i++)
		dfs(x-1,y+dy[i],s);
}

int main(){
	scanf("%d%d",&n,&m);
	sta_y=(m+1)/2;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			scanf("%lld",&g[i][j]);
	dfs(n,sta_y,0);
	printf("%lld",ans);	
	return 0;
}

想用dfs+记忆化搜索,结果样例都没过,希望有大佬按照我这个思路改一下

2024/3/24 17:28
加载中...