求助!!!!三个wa
查看原帖
求助!!!!三个wa
601245
I_am_zhima楼主2022/4/3 10:36
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
#define itn int
int n,m,t;
int a[20][20];
bool f[20][20];
int bestp,ans;
void dfs(int x,int y){
	if(x>n){
		bestp=max(bestp,ans);
		return ;
	}
	if(y>m){
		dfs(x+1,1);
		return ;
	}
	
	dfs(x,y+1);
	
	if(f[x][y]==0){
		ans+=a[x][y];
	
		for(int i=-1;i<=1;i++)
			for(int j=-1;j<=1;j++)
				if(i!=0&&j!=0)
					f[x+i][y+j]=1;	
		dfs(x,y+1);
	
		for(int i=-1;i<=1;i++)
			for(int j=-1;j<=1;j++)
				if(i!=0&&j!=0)
					f[x+i][y+j]=0;
		ans-=a[x][y];
	}
}
int main(){
	cin>>t;
	while(t--){
		cin>>n>>m;
		ans=0,bestp=0;
		memset(a,0,sizeof(a));
		memset(f,0,sizeof(f));
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>a[i][j];
		dfs(1,1);
		cout<<bestp<<endl;
	}
	return 0;
} 
2022/4/3 10:36
加载中...