广搜求条
  • 板块题目总版
  • 楼主carlxj
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/8/1 10:01
  • 上次更新2024/8/1 11:03:32
查看原帖
广搜求条
1162702
carlxj楼主2024/8/1 10:01

B3625 迷宫寻路

AC:70%

#include<bits/stdc++.h>
using namespace std;
int n,m,a[101][101],vis[101][101],fx[3][5]={{0,0,0,0,0},{0,0,0,1,-1},{0,1,-1,0,0}};
char mp;
struct node
{
	int x,y;
};
void bfs();
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>mp;
			if(mp=='.') a[i][j]=1;
			else a[i][j]=0;
		}
	}
	vis[1][1]=1;
	bfs();
return 0;
}
void bfs()
{
	queue<node> q;
	node now;
	q.push({1,1});
	while(!q.empty())
	{
		now=q.front();
		for(int i=1;i<=4;i++)
		{
			int xx=now.x+fx[1][i];
			int yy=now.y+fx[2][i];
			if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&a[xx][yy]&&!vis[xx][yy])
			{
				if(xx==n&&yy==m) 
				{
					cout<<"Yes";
					exit(0);
				}
				vis[xx][yy]=1;
				q.push({xx,yy});
			}
		}
		q.pop();
	}
	cout<<"No";
}
2024/8/1 10:01
加载中...