大佬求助,全部超时加MLE
  • 板块P1683 入门
  • 楼主wuyu6688
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/21 20:42
  • 上次更新2024/8/22 00:19:41
查看原帖
大佬求助,全部超时加MLE
1160843
wuyu6688楼主2024/8/21 20:42
#include<bits/stdc++.h>
using namespace std;
int fx[] = {0 , -1 , 0 , 1 , 0};
int fy[] = {0 , 0 , 1 , 0 , -1};
bool dp[1000][1000];
char mp[1000][1000];
int xx , x , y , dx , dy , yy , sum = 1;
int bfs(int x1 , int y1)
{
	for(int i  = 1; i <= 4; i++)
	{
		dy = y1 + fx[i];
		dx = x1 + fy[i];
		if(dp[dy][dx] == 0 && mp[dy][dx] == '.' && dy <= x && dy > 0 && dx <= y && dx > 0)
		{
			dp[dy][dx] = 1;
			sum++;
			bfs(dx,dy);
		}
	}
}
int main(){
	cin >> y >> x;
	for(int i  = 1; i <= x; i++)
	{
		for(int j  = 1; j <= y; j++)
		{
			cin >> mp[i][j];
			if(mp[i][j] == '@')
			{
				xx = j;
				yy = i;
			}
		}
	}
	dp[yy][xx] = 1;
	bfs(xx , yy);
	cout << sum << endl;
	return 0;
}

我就不明白为什么超时

2024/8/21 20:42
加载中...