试图解决P1123,然而失败了,程序一直输出0,求助
查看原帖
试图解决P1123,然而失败了,程序一直输出0,求助
765461
zhangmingsheng3521楼主2023/6/22 12:37

代码如下:

#include"bits/stdc++.h" 
using namespace std;
int ans=-1;
int xa,ya;
int a[7][7];
bool b[7][7];
void dfs(int x,int y,int aans)
{
	if ((b[x-1][y-1])&&(b[x][y-1])&&(b[x+1][y-1])&&(b[x][y-1])&&(b[x][y+1])&&(b[x+1][y-1])&&(b[x+1][y])&&(b[x+1][y+1])&&(b[x][y]))
	{
		aans+=a[x][y];
		b[x][y]=false;
		for (int i=1;i<=xa;i++)
		{
			for (int o=1;o<=ya;o++)
			{
				if (b[i][o])
				{
					dfs(i,o,aans);
				}
			}
		}
	}
	if (aans>ans)
	{
		ans=aans;
	}
}
int main()
{
	int t;
	scanf("%d",&t);
	for (int i=1;i<=t;i++)
	{
		ans=-1;
		scanf("%d%d",&xa,&ya);
		for (int j=0;j<=7;j++)
		{
			for (int k=0;k<=7;k++)
			{
				a[j][k]=0;
				b[j][k]=true;
			}
		}
		for (int c=1;c<=xa;c++)
		{
			for (int d=1;d<=ya;d++)
			{
				scanf("%d",&a[c][d]);
			}
		}
		dfs(1,1,0);
		printf("%d",ans);
		printf("\r\n");
	}
}
2023/6/22 12:37
加载中...