文章
17
粉丝
166
获赞
6
访问
143.2k
#include <bits/stdc++.h>
using namespace std;
const int N = 35;
typedef pair<int, int> PII;
int n, m, times;
char g[N][N]; //存储地图
int d[N][N]; //存储距离 -1表示还未遍历
int dx[] = {0, -1, 0, 1}, dy[] = {1, 0, -1, 0};
void bfs(int sx, int sy)
{
queue<PII> q;
q.push({sx, sy});
g[sx][sy] = '#', d[sx][sy] = 0;
while(q.size())
{
auto t = q.front();
q.pop();
if(d[t.first][t.second] == times)
{
for(int i = 0; i < n; i++) puts(g[i]);
puts("");
return;
}
for(int i = 0; i < 4; i++)
{
int x = t.first + dx[i], y = t.second + dy[i];
if(g[x][y] == '.' && d[x][y] == -1)
{
d[x][y] = d[t.first][t.second] + 1, g[x][y] = '#';
q.push({x, y});
}
}
}
cout << "No" << endl; //如果前面没有return说明早已充满
re...
登录后发布评论
暂无评论,来抢沙发