求条
  • 板块P1123 取数游戏
  • 楼主wzyc
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/2 23:49
  • 上次更新2024/11/3 11:23:47
查看原帖
求条
1141876
wzyc楼主2024/11/2 23:49

本地能过结果全re

#include<bits/stdc++.h>
using namespace std;
int maxn=0,dx[15]={0,-1,-1,0,1,1,1,0,-1,0},dy[15]={0,0,1,1,1,0,-1,-1,-1,0},n=0,a[10][10],m;
bool b[10][10]={};
void dfs(int now,int h,int x)
{
	int i=0,j=0,k=0,l=0;
	for(i=x;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			bool pd=0;
			for(k=1;k<=9;k++)
				if(b[i+dx[k]][j+dy[k]])
				{
					pd=1;
					break;
				}
			if(pd)
				continue;
			b[i][j]=1;
			h+=a[i][j];
			maxn=max(maxn,h);
			dfs(now+1,h,i);
			h-=a[i][j];
			b[i][j]=0;
		}
}
int main2()
{
	int i=0,j=0;
	memset(a,0,sizeof(a));
	cin>>n>>m;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
			cin>>a[i][j];
	}
	memset(b,0,sizeof(b));
	maxn=0;
	dfs(1,0,1);
	cout<<maxn<<'\n';
}
int main()
{
	int t=0,i=0;
	cin>>t;
	for(i=1;i<=t;i++)
		main2();
}
2024/11/2 23:49
加载中...