0分BFS求调!!!
  • 板块B3625 迷宫寻路
  • 楼主RedDog
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/8/20 14:39
  • 上次更新2023/11/3 02:28:14
查看原帖
0分BFS求调!!!
1048885
RedDog楼主2023/8/20 14:39
#include <iostream>
#include <cstring>
using namespace std;
long long ans;
int n,m;
int ma[100][100],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
char ch;
int x,y;
bool found=false,vis[100][100];
void bfs();
int main(){
    ios::sync_with_stdio(false);
    memset(vis,false,sizeof(vis));
    cin >> n >> m;
    for(int i=0;i<n;i++)
    	for(int j=0;j<m;j++){
    		cin >> ch;
    		if(ch == '.') ma[n][m] = 1;
    		else ma[m][n] = 0;
    	}
    int a[100000000][2];
	memset(a,0,sizeof(a));
	int head=0,rear=1;
	do{
		head++;
		for(int k=0;k<4;++k){
			x += dx[k];y += dy[k];
			if(x==m&&y==n){found = true;rear=head;break;}
			if(x<m&&x>=0&&y<n&&y>=0&&ma[x][y]==1){
				rear++;
				a[rear][0] = x+dx[k];
				a[rear][1] = y+dy[k];
				ma[x][y] = 0;
			}
		}
	}while(head<rear);
    if(found) cout <<"Yes" << endl;
    else cout << "No" << endl;
    return 0;
}

2023/8/20 14:39
加载中...