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

网站上线是前端还是后端来做东莞搜索网络优化

网站上线是前端还是后端来做,东莞搜索网络优化,优化网站关键词怎么做,崇文门网站建设题目链接: 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/wzjs/515746.html

相关文章:

  • 临沂网站制作企业2023引流软件
  • 松江网站开发公司永久开源的免费建站系统
  • 网站建设统计表一个新产品的营销方案
  • 怎么做个网站关键词查询的分析网站
  • 网站如何做防护百度指数免费查询入口
  • 成都论坛旺道智能seo系统
  • 广东专业做网站山东济南最新消息
  • 常德网站建设字答科技关键词优化排名软件s
  • 东莞网站优化如何贵州网站seo
  • 太原做网站的推广普通话宣传语100字
  • 网站开发 项目的人员分配企业邮箱申请
  • 做网站时量宽度的尺子工具四川seo推广公司
  • 外贸soho建站公司哈尔滨seo关键词
  • 共享网站的详细规划抖音代运营
  • 益阳网站建设广告win7优化极致性能
  • 官方网站下载水印相机网络运营推广
  • 动态网站开发实训总结域名交易
  • 机械网站怎么做网络销售怎么学
  • 宝鸡华捷网站建设公司免费网站
  • 分类信息网站如何做优化怎么推广自己的微信号
  • 上海网站推广珈维新冠疫情最新情况最新消息
  • 做网站市场价格多少app网络推广方案
  • 做网站ceo域名注册局
  • 网站做sem能够提高收录量吗外贸推广方式都有哪些
  • 做一个平台网站的预算北京计算机培训机构前十名
  • 泸州网站建设长沙seo结算
  • 手机网站的建设惠州网站营销推广
  • wordpress 版权信息重庆百度推广seo
  • 怎样知道网站有没有做推广百度收录平台
  • 网站做众筹需哪些条件网站制作建设公司