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

注册域名建设网站dnf怎么做盗号网站

注册域名建设网站,dnf怎么做盗号网站,静态商城网页模板,域名搜索引擎审题: 本题需要我们寻找迷宫中的所有出口,若有出口需要输出距离最近的出口的距离,若没有就输出-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://www.dtcms.com/a/396718.html

相关文章:

  • 南昌网站建设模板下载网址深圳app制作公司
  • 做网站一定要域名吗效果图外包
  • 网站专题设计欣赏建设中网站
  • 龙岩网站设计价格营销网络是什么意思
  • 做网站的 视频做网站需要什么学历
  • 没有备案的交易网站苏州微信小程序开发公司
  • emlog怎么做视频网站赞助网站怎么做
  • 长沙会议网站设计哪家专业网站推广的方法有哪些?
  • 做网站买岩棉河北邢台特产
  • 长沙做公司网站大概多少钱敬请期待英文
  • 做家装的网站好h5开发教程
  • 阳春网站制作乐清网站建设推广
  • 成都专业网站推广公司网页游戏排行榜前十名田田田田田田田田田田
  • 沈阳哪里做网站用wordpress编辑文章如何全屏
  • 网站制作工作流程个人承包工程合同范本
  • 网站建设维护 知乎浙江在线
  • 小说写作网站建设厅网站查询三类人员
  • 如何在外管局网站上做延期制作wordpress分享
  • 需要做网站设计我做夫人那些年网站登录
  • 网站备案 地址广州洛可可设计公司
  • 怎么下载网站动态图片网站建设中数据库的维护论文
  • 网易做相册旅游网站wordpress退回旧编辑器
  • 织梦网站如何做优化网站分享对联广告
  • 类似百科式的网站建设高密做网站的价格
  • 有做外贸个人网站始兴生态建设网站
  • 企业网站做的公司食品类建设网站的目的
  • 做黄金的人喜欢逛那些网站画册设计要求
  • 贵州省建设监理协会网站是什么系统开发的可行性分析
  • 简单的个人网站下载网站设计怎么算间距
  • 网站建设明细报价单个人网站怎么快速推广