警示后人
查看原帖
警示后人
928207
kingzzzzzz楼主2024/12/29 08:49
#include<bits/stdc++.h>
using namespace std;
int T,n,m,a[10][10],q,b[105][105];
void DFS(int x,int y,int z){
	if(x>n){
		q=max(q,z);
		return ;
	}
	int xx=x,yy=y+1;
	if(yy>m){
		xx++;
		yy=1;
	}
	if(!b[x-1][y]&&!b[x][y-1]&&!b[x-1][y-1]&&!b[x-1][y+1]){
		b[x][y]=1;
		DFS(xx,yy,z+a[x][y]);
		b[x][y]=0;
	}
	DFS(xx,yy,z);
}
int main(){
    int T;
	cin>>T;
	while(T--) {
		q=0;
		cin>>n>>m;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
		    	cin>>a[i][j];
		    }	
		}
		DFS(1,0,0);
		cout<<q<<endl;
	}
	return 0;
}
2024/12/29 08:49
加载中...