Untitled

 avatar
unknown
plain_text
2 years ago
1.2 kB
3
Indexable
#include<iostream>
using namespace std;
int M,N,a[16][16],ans,vs[16][16];
int dxl[6]={-1,-1,-1,0,0,1};
int dyl[6]={-1,0,1,-1,1,0};
int dxc[6]={1,1,1,0,0,-1};
int dyc[6]={-1,0,1,-1,1,0};
bool checkbien(int x,int y){
	if(x>=1 && x<=M && y>=1 && y<=N){
		return true;
	}
	return false;
}
void reset(){
	for(int i=1;i<=M;i++){
		for(int j=1;j<=N;j++){
			vs[i][j]=0;
		}
	}
}
void bt(int k,int x,int y,int sum){
	if(k==4 ){
		if(sum>ans)ans=sum;
		return;
	}
	for(int i=0;i<6;i++){
		int xx,yy;
		if(y%2==1){
			xx=x+dxl[i];
			yy=y+dyl[i];
		}
		if(y%2==0){
			xx=x+dxc[i];
			yy=y+dyc[i];
		}
		if(checkbien(xx,yy) && vs[xx][yy]==0){
			vs[xx][yy]=1;
			bt(k+1,xx,yy,sum+a[xx][yy]);
			bt(k+1,x,y,sum+a[xx][yy]);
			vs[xx][yy]=0;
		}
		
	}
}
int main(){
	int T;
	//freopen("Text.txt","r",stdin);
	cin>>T;
	for(int tc=1;tc<=T;tc++){
		cin>>N>>M;
		for(int i=1;i<=M;i++){
			for(int j=1;j<=N;j++){
				cin>>a[i][j];
			}
		}
		ans=0;
		for(int i=1;i<=M;i++){
			for(int j=1;j<=N;j++){
				reset();
				vs[i][j]=1;
				bt(1,i,j,a[i][j]);
			}
		}
		cout<<"Case #"<<tc<<endl<<ans*ans<<endl;
	
	}
	return 0;
}
Editor is loading...