80分TLE+MLE求调
  • 板块P1141 01迷宫
  • 楼主aliah
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/6 18:29
  • 上次更新2024/3/6 20:43:53
查看原帖
80分TLE+MLE求调
1095195
aliah楼主2024/3/6 18:29

1#点MLE,3#和11#TLE,求大佬帮忙调试

#include<cstdio>
#define N 1000
using namespace std;
int a[N][N];
int c[N][N];
bool b[N][N];
int z;
void fun(int n,int x,int y)
{
	z++;
	b[x][y]=true;
	if(x>0 && a[x-1][y]!=a[x][y] && b[x-1][y]==false)
		fun(n,x-1,y);
	if(y>0 && a[x][y-1]!=a[x][y] && b[x][y-1]==false)
		fun(n,x,y-1);
	if(x<n-1 && a[x+1][y]!=a[x][y] && b[x+1][y]==false)
		fun(n,x+1,y);
	if(y<n-1 && a[x][y+1]!=a[x][y] && b[x][y+1]==false)
		fun(n,x,y+1);
}
int main()
{
	int n,m,i,j,x,y;
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		{
			scanf("%1d",&(a[i][j])); 
			c[i][j]=0x7fffffff; 
		}
	for(;m;m--)
	{
		scanf("%d%d",&x,&y);
		if(c[x-1][y-1]==0x7fffffff)
		{
			for(i=0;i<n;i++)
				for(j=0;j<n;j++)
					b[i][j]=false;
			z=0;
			fun(n,x-1,y-1);
			printf("%d\n",z);
			for(i=0;i<n;i++)
				for(j=0;j<n;j++)
					if(b[i][j])
						c[i][j]=z;
		}
		else
			printf("%d\n",c[x-1][y-1]);
	}
	return 0;
}
2024/3/6 18:29
加载中...