求助,用了dp
  • 板块P1123 取数游戏
  • 楼主D_FANG
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/2/25 10:43
  • 上次更新2023/10/23 23:52:51
查看原帖
求助,用了dp
635829
D_FANG楼主2023/2/25 10:43
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int t;
int n,m;
long long a[10][10],f[10][10];
long long max(const long long &x,const long long &y){
	return x>y?x:y;	
}
int main(){
	scanf("%d",&t);
	for (int ccf=1;ccf<=t;ccf++){
		long long ans=0;
		scanf("%d%d",&n,&m);
		memset(a,0,sizeof(a));
		memset(f,128,sizeof(f));
		for (int i=1;i<=n;i++){
			for (int j=1;j<=m;j++){
				scanf("%lld",&a[i][j]);
			}
		}
		f[1][1]=a[1][1];
		for (int i=1;i<=n;i++){
			for (int j=1;j<=m;j++){
				if (i==1&&j==1) continue;
				f[i][j]=max(max(f[i-2][j],max(f[i+2][j],max(f[i][j-2],max(f[i][j+2],max(f[i-2][j+1],max(f[i-2][j-1],max(f[i+2][j-1],max(f[i+2][j+1],max(f[i-1][j-2],max(f[i+1][j-2],max(f[i-1][j+2],max(f[i+1][j+2],max(f[i+2][j+2],max(f[i+2][j-2],max(f[i-2][j-2],f[i-2][j+2])))))))))))))))+a[i][j],max(f[i-1][j],max(f[i+1][j],max(f[i][j-1],max(f[i][j+1],max(f[i-1][j-1],max(f[i-1][j+1],max(f[i+1][j-1],f[i+1][j+1]))))))));
				ans=max(ans,f[i][j]);
			}
		}
		printf("%lld\n",ans);
	}
	return 0;
}
2023/2/25 10:43
加载中...