救救孩子吧!
查看原帖
救救孩子吧!
819362
Wyy_w123楼主2023/2/14 17:13

0分全MLE:

#include<iostream>
using namespace std;
int n,m,xb[8][8],h=0;
bool fb[8][8];
int xu[9]={0,1,0,1,-1,0,-1,-1,1};
int yu[9]={0,1,1,0,-1,-1,0,1,-1};
void bhy(int x,int y){
   for(int i=0;i<9;i++){
   	if((x+xu[i]>=1&&y+yu[i]>=1)&&(x+xu[i]<=n&&y+yu[i]<=m)){
   		fb[x+xu[i]][y+yu[i]]=1;
   	}
   }
}
void dhy(int x,int y){
   for(int i=0;i<9;i++){
   	if((x+xu[i]>=1&&y+yu[i]>=1)&&(x+xu[i]<=n&&y+yu[i]<=m)){
   		fb[x+xu[i]][y+yu[i]]=0;
   	}
   }
}
void dfs(int g){
   bool l=0;
   for(int i=1;i<=n;i++){
   	for(int j=1;j<=m;j++){
   		if(!fb[i][j]){
   			l=1;
   			bhy(i,j);
   			dfs(g+xb[i][j]);
   			dhy(i,j);
   		}
   	}
   }
   if(!l){
   	if(g>h){
   		h=g;
   	}
   	return;
   }
}

int main(){
   int t;
   cin>>t;
   for(int ti=1;ti<=t;ti++){
   	cin>>n>>m;
   	for(int i=1;i<=n;i++){
   		for(int j=1;j<=m;j++){
   			cin>>xb[i][j];
   			fb[i][j]=0;
   		}
   	}
   	dfs(0);
   	cout<<h<<endl;
   }
   return 0;
}
2023/2/14 17:13
加载中...