请问怎么优化啊 这代码又臭又长
  • 板块B3625 迷宫寻路
  • 楼主willix
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/4/19 18:24
  • 上次更新2023/10/23 18:02:54
查看原帖
请问怎么优化啊 这代码又臭又长
520775
willix楼主2023/4/19 18:24
#include <bits/stdc++.h>
#define N 105
using namespace std;
int n, m;
bool vis[N][N];
void bfs(int x, int y) {
    queue<pair<int, int>> q;
    q.push(make_pair(x, y));
    vis[x][y]=true;
    while(!q.empty()) {
        pair<int, int> p=q.front();
        q.pop();
        int x1=p.first, y1=p.second;
        if(x1==m && y1==n) {
        	cout << "Yes";
        	return;
		}
        if(!vis[x1+1][y1]) {
            vis[x1+1][y1]=true;
            q.push(make_pair(x1+1, y1));
        }
        if(!vis[x1][y1+1]) {
            vis[x1][y1+1]=true;
            q.push(make_pair(x1, y1+1));
        }
        if(!vis[x1-1][y1]) {
            vis[x1-1][y1]=true;
            q.push(make_pair(x1-1, y1));
        }
        if(!vis[x1][y1-1]) {
            vis[x1][y1-1]=true;
            q.push(make_pair(x1, y1-1));
        }
    }
    cout << "No";
}
int main() {
    char a;
    cin >> n >> m;
    for(int i = 1;i <= n;i++) {
        for(int j = 1;j <= m;j++) {
            cin >> a;
            if(a=='#') vis[j][i]=true;
        }
    }
    for(int i = 0;i <= n+1;i++) {
        vis[0][i]=vis[m+1][i]=true;
    }
    for(int i = 0;i <= m+1;i++) {
        vis[i][0]=vis[i][n+1]=true;
    }
    bfs(1, 1);
    return 0;
}
2023/4/19 18:24
加载中...