能解决什么问题
走迷宫问题
代码
#include <queue>
typedef pair<int, int> PII;
int n, m;
PII start;
int res;
bool used[N][N];
int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};
void bfs()
{
queue<PII> q;
q.push(start);
used[start.first][start.second] = true;
while (!q.empty()) {
int sz = q.size();
for (int i = 0; i < sz; i++) {
PII t = q.front();
q.pop();
if (到达终点) {
printf("%d", res);
return;
}
for (int i = 0; i < 4; i++) {
int x = t.first + dx[i], y = t.second + dy[i];
if (x >= 0 && x < n && y >= 0 && y < m && !used[x][y] && 可以走到这个点) {
q.push({x, y});
used[x][y] = true;
}
}
}
res++;
}
return; // 表明走不到终点
}
标签:PII,used,int,res,BFS,start,&&
From: https://www.cnblogs.com/cong0221/p/17131330.html