为什么我暴力dfs只有15分
查看原帖
为什么我暴力dfs只有15分
190911
_落谷楼主2021/10/11 12:16
#include<bits/stdc++.h>
using namespace std;
long long n,m,ans;
long long a[1005][1005];
bool b[1005][1005];
long long dx[3]= {1,0,-1};
long long dy[3]= {0,1,0};
void f(long long x,long long y,long long s) {
	if(x==n&&y==m) {
		if(s>ans) ans=s;
		return ;
	}
	for(long long i=0; i<3; i++) {
		long long nx=x+dx[i];
		long long ny=y+dy[i];
		if(!b[nx][ny]&&nx>0&&ny>0&&nx<=n&&ny<=m) {
			b[nx][ny]=1;
			f(nx,ny,s+a[nx][ny]);
			b[nx][ny]=0;
		}
	}
}
int main() {
	scanf("%lld%lld",&n,&m);
	for(long long i=1; i<=n; i++)
		for(long long j=1; j<=m; j++)
			scanf("%lld",&a[i][j]);
	ans=-2147483647;
	f(1,1,a[1][1]);
	printf("%lld",ans);
	return 0;
}
2021/10/11 12:16
加载中...