0分求助
  • 板块P1141 01迷宫
  • 楼主ikuncdl
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/10/5 21:32
  • 上次更新2024/10/5 23:59:30
查看原帖
0分求助
1276662
ikuncdl楼主2024/10/5 21:32

大佬们帮忙看看用的二维深搜

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<map>
#include<queue>
#include<stack>
using namespace std;
int n,m,c;
char f[1005][1005];
bool v[1005][1005];
int dx[] = {0,0,0,-1,1};
int dy[] = {0,1,-1,0,0};
void r(int x,int y)
{
	for (int i = 1;i <= 4;i++)
	{
		int nx = x + dx[i],ny = y + dy[i];
		if (nx < 1 || nx > n || ny < 1 || ny > n)
		{
			continue;
		}
		if (f[x][y] == f[nx][ny])
		{
			continue;
		}
		if (v[nx][ny])
		{
			continue;
		}
		c++;
		v[nx][ny] = true;
		r(nx,ny);
	}
}
int main()
{
	cin>>n>>m;
	for (int i = 1;i <= n;i++)
	{
		for (int j = 1;j <= n;j++)
		{
			cin>>f[i][j];
		}
	}
	for (int i = 1;i <= m;i++)
	{
		int fi,fj;
		c = 0;
		cin>>fi>>fj;
		r(fi,fj);
		for (int j = 1;j <= n;j++)
		{
			memset(v[j],0,sizeof(v[j]));
		}
		cout<<c;
	}
 	return 0;
}
2024/10/5 21:32
加载中...