当前位置: 首页 > news >正文

电子商务网站建设与管理基础重庆展示型网站制作

电子商务网站建设与管理基础,重庆展示型网站制作,做盗版网站会怎样,网站如何进行seo题目链接: 2.走迷宫 - 蓝桥云课https://www.lanqiao.cn/problems/1216/learning/?problem_list_id30&page1 题目描述: 给定一个 NM的网格迷宫 G。G 的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 …

题目链接:

2.走迷宫 - 蓝桥云课https://www.lanqiao.cn/problems/1216/learning/?problem_list_id=30&page=1

题目描述:

        给定一个 N×M的网格迷宫 G。G 的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 0 表示)。已知迷宫的入口位置为 (x1,y1),出口位置为 (x2,y2)。问从入口走到出口,最少要走多少个格子。

输入描述:

       输入第 1 行包含两个正整数 N,M,分别表示迷宫的大小。接下来输入一个 N×M 的矩阵。若 Gi,j=1表示其为道路,否则表示其为障碍物。最后一行输入四个整数 x1,y1,x2,y2,表示入口的位置和出口的位置。1≤N,M≤10^2,0≤Gi,j≤1,1≤x1,x2≤N,1≤y1,y2≤M。

输出描述:

        输出仅一行,包含一个整数表示答案。若无法从入口到出口,则输出 −1。

输入:

5 5 
1 0 1 1 0
1 1 0 1 1 
0 1 0 1 1
1 1 1 1 1
1 0 0 0 1
1 1 5 5 

输出: 

8

解题思路:

        bfs:先设置两个二维数组map和mark,分别表示该点能不能通过和是否已经被访问,并将mark使用memeset函数初始化为-1。将入口加入到队列中,并使用dx和dy依次访问每个队头原酸的周围4个点,如果未被访问并且可以被访问则将其加入到队列中,并将该元素的距离设置为起上一个元素的距离+1,当访问完周围四个点之后,将该元素退出队列,依次类推就可以将所有元素按照顺序依次被访问,并得到所有元素的据入口的距离。

代码:

#include <iostream>
#include<cstring>
#include<queue>
#define MAX 101
using namespace std;int map[MAX][MAX];    //用于记录坐标是否课通过
int mark[MAX][MAX];    //用于记录坐标是否被访问过
typedef pair<int, int> PII;     //定义坐标数据变量
queue <PII>q;     //队列
int dx[] = { -1,0,1,0 };   //x方向上的变量
int dy[] = { 0,-1,0,1 };   //y方向上的变量//广度优先遍历算法
int bfs(int N, int M, int x1, int y1, int x2, int y2) 
{memset(mark, -1, sizeof(mark));    //对数组进行初始化mark[x1 - 1][y1 - 1] = 0;    //访问入口q.push({ x1 - 1, y1 - 1 });    //将入口放入队列中while (!q.empty())   //访问所有的可访问点{PII top = q.front();for (int i = 0;i < 4;i++){//遍历队列第一个节点的上下左右四个节点int nex = top.first + dx[i];int ney = top.second + dy[i];if ((nex >= 0 && nex < N) && (ney >= 0 && ney < M) && (map[nex][ney] == 1) && (mark[nex][ney] == -1)) {mark[nex][ney] = mark[top.first][top.second] + 1;    //距离起点的长度+1q.push({ nex,ney });     //将新节点加入队列中}}q.pop();    //将队列第一个节点读取完毕后删除//cout << "aaa" << endl;}//查看mark值//for (int i = 0;i < N;i++)//{//	for (int j = 0;j < M;j++)//	{//		cout<<mark[i][j]<<" ";//	}//	cout << endl;//}return mark[x2 - 1][y2 - 1];    //返回终点的标记值
}int main()
{// 请在此输入您的代码//输入int N, M;cin >> N >> M;for (int i = 0;i < N;i++){for (int j = 0;j < M;j++){cin >> map[i][j];}}int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;cout << bfs(N, M, x1, y1, x2, y2) << endl;;return 0;
}

 

参考思路:第十三章 DFS与BFS(保姆级教学!!超级详细的图示!!)_dfs bfs-CSDN博客  

http://www.dtcms.com/a/575135.html

相关文章:

  • 鞍山自适应网站制作网站改版域名不变
  • rocketmq 的核心概念讲解
  • 注册了自己的网站中华始祖堂室内设计
  • 定制化网站建设假网站连接怎么做的
  • 中小企业网站建设免费注册电子邮箱
  • 建设银行企业版网站电脑上免费制作ppt的软件
  • 顺企网属于什么网站江西建设监理协会网站
  • 洛阳网站建设哪家公司好php网站建设文献综述
  • 功能测试与接口测试规范SOP流程
  • 网站项目计划书模板范文有做外贸个人网站
  • 可以做专利聚类分析的免费网站深圳自定义网站开发
  • 公司网站年费网站死链接怎么提交
  • 沈阳市绿云网站建设2023企业所得税300万以上
  • 网站设计机构排行榜福建省建设注册管理中心网站
  • 旅游网站开发研究现状模板建站费用
  • 学生模拟网站开发项目wordpress 移动建站
  • 五金配件网站建设报价广东省做网站推广公司
  • 【保研经验】双非26届计算机——中农ai、央民ai、北科ai、北邮网安、北交cs
  • 顺德大良那里做网站好wordpress您找的页面不存在
  • 丝路建设网站服务器做视频网站吗
  • C++之static_cast关键字
  • Ubuntu 20.04中复现LeRobot-ALOHA的仿真
  • wap网站开发协议浏览器无法打开住房和建设网站
  • 网站标题 关键词 描述之间的关系深圳龙岗建网站
  • 响应式网站企业明空网络做网站好不好
  • 基于轻量化卷积神经的甜瓜白粉病田间快速检测系统
  • 仿站容易还是建站容易个人网站 如何做推广
  • 基于python大数据的房价数据分析系统
  • 微信h5网站开发wordpress站点备份
  • 市场营销的十大理论网站优化排名易下拉用法