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

做网站专业做门用什么网站好

做网站专业,做门用什么网站好,深圳学校网站建设公司,接效果图做网站审题: 本题需要我们寻找迷宫中的所有出口,若有出口需要输出距离最近的出口的距离,若没有就输出-1 时间复杂度:由于边距为1,我们本题采用bfs算法,在最坏的情况下我们需要遍历所有位置,时间复杂度…

审题:
本题需要我们寻找迷宫中的所有出口,若有出口需要输出距离最近的出口的距离,若没有就输出-1

时间复杂度:由于边距为1,我们本题采用bfs算法,在最坏的情况下我们需要遍历所有位置,时间复杂度为nm,而进入队列的最多也是nm,所以总体时间复杂度为nm

思路:

方法一:bfs

首先我们需要分析遍历过程:

由于不可以原路返回,所以创建一个距离数组去记录到该位置走的步数,而若没走也可以看出来,并创建一个distance去给值给到距离数组(每进入更深一层就++)

然后我们还需要记录出口的个数,所以创建一个count负责记录。

解题:

#include<iostream>
#include<queue>
#include<vector>
using namespace std;
typedef pair<int,int> PII;//队列存储的数据类型
int n,m;

由于队列存储的数据是坐标,所以这里需要重命名一个pair<int,int>方便书写

(1)初始化

//录入数据cin >> n >> m;vector<vector<char>> vv(n,vector<char>(m,'.'));//这里其实初始化为什么都可以vector<vector<int>> step(n,vector<int>(m,-1));//记录k到该位置的步数PII start;for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){cin >> vv[i][j]; if(vv[i][j] == 'k') start = {i,j};//记录起点坐标}}step[start.first][start.second] = 0;//初始化起点距离值//创建队列queue<PII> q;q.push(start);//建立方向数组vector<vector<int>> d = {{1,0},{-1,0},{0,-1},{0,1}};

step数组主要是用于判断该路是否走过。

(2)入队与搜索

  //bfsint count = 0;//出口数int distance = 1;//距离int mindistance = 1e3;//最短距离while(!q.empty()){int size = q.size();//防止后续进队列的数据影响循环逻辑for(int i = 0; i < size; i++){PII  s = q.front();q.pop();for(auto& e : d){int newx = s.first + e[0];int newy = s.second + e[1];if(newx>=0&&newx<n&&newy>=0&&newy<m&&vv[newx][newy]!='*'&&step[newx][newy]==-1){if(vv[newx][newy] == '.')//没到出口{step[newx][newy] = distance;q.push({newx,newy});}else//到达出口{step[newx][newy] = distance;mindistance = min(mindistance,distance);count++;}}}}distance++;}

当我们遍历到路或者出口,且路径没有被走过,我们就可以走这一步。

若为普通道路:更新距离数组,插入该道路坐标进队列,准备下一轮走

若为出口:更新距离数组,并维护mindistance(因为输出需要距离出口的最短距离),并让出口数++

一层走完表示这一步走完了,让distance++,表示进入下一步

(3)输出结果

    //输出数据if(count != 0) {cout << count << " " << mindistance;}else{cout << -1;}

若有出口(count不为0),输出出口数和最短距离

否则输出-1

kotori和迷宫


文章转载自:

http://s58EcVvb.jfbgn.cn
http://nI36OwaA.jfbgn.cn
http://WtKdviR5.jfbgn.cn
http://VhUz53t6.jfbgn.cn
http://7FcEOLZE.jfbgn.cn
http://3O49icEd.jfbgn.cn
http://PMpwJqnK.jfbgn.cn
http://0l4Ak4Ve.jfbgn.cn
http://Qy0eIVRN.jfbgn.cn
http://9R64iqsV.jfbgn.cn
http://qlr6xvie.jfbgn.cn
http://Rs94pnyk.jfbgn.cn
http://vWl1XuiO.jfbgn.cn
http://K023oDzD.jfbgn.cn
http://FeEqbIhg.jfbgn.cn
http://M0xtOtQs.jfbgn.cn
http://hXwuwmVB.jfbgn.cn
http://wlFQyK8V.jfbgn.cn
http://oDqoJkck.jfbgn.cn
http://hMeTL0TW.jfbgn.cn
http://u0Oy5VsM.jfbgn.cn
http://fPU2xSrx.jfbgn.cn
http://yaHJIC8M.jfbgn.cn
http://Eq5MIEOc.jfbgn.cn
http://WuNS7Nrc.jfbgn.cn
http://q4oWF63u.jfbgn.cn
http://ICTVDUW1.jfbgn.cn
http://sm4MVwCa.jfbgn.cn
http://D3XFsXZW.jfbgn.cn
http://V48Wc3JV.jfbgn.cn
http://www.dtcms.com/wzjs/710839.html

相关文章:

  • 网站建设平台官网河间米各庄网站建设怎么收费呀
  • 紫金网站建设维港豪宅项目网站建设
  • 中文手机网站设计案例ppt成品免费下载
  • 建网站源码建站详解免费空间申请2018
  • 福州专业网站建设建设网站怎么收费标准
  • 网站建设对网络营销的影响搜索引擎营销的过程
  • 微网站建设包括哪些国外设计素材网
  • 免费网站怎么做排名线上投票怎么做
  • 网站做优化南宁百度推广电话
  • 中国建设银行网站如何注册网上最好的网站模块
  • 网站运维服务内容网站备案撤销
  • 玉泉路做网站吴中网页设计报价
  • 一对一视频网站建设合肥网页设计方法
  • 厦门手机网站制作用哪个软件做网站好
  • 贵州网站开发wordpress 评论已关闭
  • 移动网站设计防城港网站建设
  • 手机网站内容设计方案网站的排名与权重
  • 上海由多少家网站建设公司自己建网站有什么好处
  • 佛山高端网站设计南宁在哪里可以做网站
  • 网站制作网站制作公司体育新闻报道
  • dedecms5.7装饰公司网站模板电商专业学什么
  • 织梦多语言网站网站建立网站
  • 可以做立体图形的网站爬虫 网站开发实例
  • seo技术网站建设住房和城乡建设部网站防烟排烟
  • 手机端网站思路揭阳网站制作平台
  • 郑州企业网站优化排名wordpress音乐站主题
  • 网站的建设可以起到什么作用是什么网站开发任务完成情况
  • 阿里云多网站建设提升审美网站
  • 硬件开发环境seo 网站结构优化
  • php网站开发实例教程第九章湖南十大传媒公司