您的位置:首页 > 游戏 > 手游 > php网页设计完整代码_阿里巴巴国际站的前台网址是_互联网推广招聘_深圳知名网络优化公司

php网页设计完整代码_阿里巴巴国际站的前台网址是_互联网推广招聘_深圳知名网络优化公司

2024/12/23 3:12:08 来源:https://blog.csdn.net/ygklwyf/article/details/144621090  浏览:    关键词:php网页设计完整代码_阿里巴巴国际站的前台网址是_互联网推广招聘_深圳知名网络优化公司
php网页设计完整代码_阿里巴巴国际站的前台网址是_互联网推广招聘_深圳知名网络优化公司
//输入格式
//输入包含10行,每行10个字符,描述这个农场的布局。输入保证图案中恰有一个字符 B、一个字符 L 以及一个字符 R。
//输出格式
//输出一个整数,为组成一条从B到L的的最短路径(避开R)。
//https://www.luogu.com.cn/problem/P1699
#include<bits/stdc++.h>
using namespace std;
char mp[10][10];
int sx, sy, tx, ty;
bool vis[10][10];
int xx[] = { 1,-1,0,0 };
int yy[] = { 0,0,1,-1 };
struct node {int x, y, step;
};
int bfs(int sx, int sy, int tx, int ty)
{queue<node> qu;qu.push(node{sx,sy,0});while (!qu.empty()){node f = qu.front();qu.pop();for (int i = 0; i < 4; i++){int x = f.x + xx[i];int y = f.y + yy[i];if (vis[x][y]) continue;if (mp[x][y] == 'R') continue;if (x<0 || x>9 || y<0 || y>9) continue;if (x == tx && y == ty){return f.step;}           vis[x][y] = 1;node New;New.x = x;New.y = y;New.step = f.step+1;qu.push(New);   }}return -1;
}int main()
{memset(vis, 0, sizeof vis);for (int i = 0; i < 10; i++){for (int j = 0; j < 10; j++){cin >> mp[i][j];if (mp[i][j] == 'B'){sx = i;sy = j;}if (mp[i][j] == 'L'){tx = i;ty = j;}}}int ret=bfs(sx, sy, tx, ty);cout << ret<< endl;return 0;
}

在涉及最短路径问题时,应该在不断向外遍历时多加一个记录遍历层数的变量(上题用的时step);如果说DFS是一条在地图上的贪吃蛇,一条道走到黑,直到走不通再return回去直到能走通,那么BFS就是以起点为中心不断向外扩散的水波一层层地向外蔓延。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com