广度优先搜索练习之神奇的电梯
Time Limit: 1000ms Memory limit: 65536K
题目描述
有一座已知层数为n的高楼,这座高楼的特殊之处在于只能靠电梯去上下楼,所以要去到某一层要非常耽误时间,然而更悲哀的是,这座高楼的电梯是限号的,小鑫最开始的时候在1层,他想去第x层,问题是他最起码要经过多少层(包含第x层)才能到达第x层。
输入
多组输入。
第一行是三个正整数n,m,q。分别代表楼的总层数,给定的m条信息和q次查询。
接下来的m行,每行的第一个整数pos代表这是第pos层的电梯,第二个数代表从这一层可以去的楼层总共有num个,之后的num个数字代表从第pos层代表可以去的楼层。
最后的q行,每行一个整数代表小鑫想去的楼层号码。
1<=m,pos,num<=n<=200
1<=q<=20
输出
对于每次询问输出一个整数,占一行。代表如果要去某个楼层最少要经过多少层,如果到不了的话就输出-1。
示例输入

10 4 3
1 2 6 7
3 4 4 6 8 10
5 2 2 3
7 3 10 5 6
4
5
9

示例输出

5
3
-1

题目方法:bfs+邻接矩阵,队列的基本操作
前提准备:

#include<queue>

详细用法:
定义一个queue的变量 queue M
查看是否为空范例 M.empty() 是的话返回1,不是返回0;
从已有元素后面增加元素 M.push()
输出现有元素的个数 M.size()
显示第一个元素 M.front()
显示最后一个元素 M.back()
清除第一个元素 M.pop()

#include <iostream>
#include <cstring>
#include <stdio.h>
#include <queue>
using namespace std;
int k,key,h;
int map1[2000][2000];
int vir[2000];
struct node
{int x;int y;int time;
};
void bfs(int x)
{node t,f;queue<node> Q;t.x=x;t.time=0;Q.push(t);vir[x]=1;while(!Q.empty()){t=Q.front();Q.pop();if(t.x==key){printf("%d\n",t.time+1);return;}for(int i=1;i<=k;i++){f.x=i;if(vir[f.x]==0&&map1[t.x][f.x]){f.time = t.time+1;vir[f.x]=1;Q.push(f);}}}printf("-1\n");return ;
}
int main()
{int a,i,m,b;while(~scanf("%d%d%d",&k,&m,&h)){memset(map1,0,sizeof(map1));for(i=0;i<m;i++){scanf("%d%d",&a,&b);for(int j=0;j<b;j++){int h1;scanf("%d",&h1);map1[a][h1]=1;}}for(i=1;i<=10;i++){for(int j=1;j<=10;j++){printf("%d",map1[i][j]);}printf("\n");}for(i=0;i<h;i++){memset(vir,0,sizeof(vir));scanf("%d",&key);bfs(1);}}return 0;
}

广度优先搜索练习之神奇的电梯相关推荐

  1. SDUTOJ3468_广度优先搜索练习之神奇的电梯(BFS + 用vector建图)

    广度优先搜索练习之神奇的电梯 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 有一座已 ...

  2. [SDUT](3468)广度优先搜索练习之神奇的电梯 ---BFS(图)

    广度优先搜索练习之神奇的电梯 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description ...

  3. 广度优先搜索——奇怪的电梯(洛谷 P1135)

    广度优先搜索普及/提高篇,今天讲述的是洛谷里的一道题 奇怪的电梯(洛谷 P1135) 说一下我解题时候的思路吧. 首先读清楚题目,题目要求输出从 a楼 到 b楼的最少次数,楼层必须在[1,n]之间升降 ...

  4. 广度优先搜索(Breadth-first search)

    广度优先搜索(Breadth-first search) 广度优先搜索简称广搜或者BFS,BFS和DFS一样是一种图算法,dijkstra算法和最小生成树prim算法也有用到BFS的思想.通俗一点讲B ...

  5. 浅谈 深度优先搜索与广度优先搜索

    文章目录 深度优先搜索(DFS) 广度优先搜索(BFS) 区别 DFS例题:八皇后问题 AC代码 思路整理 BFS例题:奇怪的电梯 AC代码 思路整理 深度优先搜索(DFS) 深搜在无减枝的情况下,一 ...

  6. [C] 层层递进——C语言实现广度优先搜索

    以防万一有人想不开要做染色的题呢?比如我. 广度优先搜索 如何实现一个广度优先搜索 广搜(bfs)是一个层层递进的概念,与深搜的不撞南墙不回头不同,广搜更像一个感染的过程,一个点只能感染到它周边的点. ...

  7. python扫雷 广度优先_Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper)...

    Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tre ...

  8. 初识广度优先搜索与解题套路

    作者 | P.yh 来源 | 五分钟学算法 初识广度优先搜索 在讲解广度优先搜索之前,我们来看看几个常见的数据结构,链表.树.图. 先来看看其中比较简单的数据结构 - 链表,它和数组类似,也是一个线性 ...

  9. matlab bfs函数,matlab练习程序(广度优先搜索BFS、深度优先搜索DFS)

    如此经典的算法竟一直没有单独的实现过,真是遗憾啊. 广度优先搜索在过去实现的二值图像连通区域标记和prim最小生成树算法时已经无意识的用到了,深度优先搜索倒是没用过. 这次单独的将两个算法实现出来,因 ...

最新文章

  1. Python 基础:分分钟入门
  2. HttpWebRequest与HttpWebResponse进行数据采集时的注意点
  3. c++类与对象(1)——构造,复制构造函数
  4. iOS9.3.3骚扰电话拦截黑名单数据库
  5. python 图像处理 书籍_清华大学出版社-图书详情-《深度学习技术图像处理入门》...
  6. 一元函数积分学基本计算例题
  7. 陈述句c语言,幼儿语言发展中最早产生的句型是()。A.陈述句 B.疑问句C.祈使句 D.感叹句...
  8. 面试题:浏览器事件冒泡、事件捕获
  9. [强烈推荐]ring0下文件解锁强制删除工具
  10. 400错误,The server cannot or will not process the request due to something that is perceived to be a c
  11. 二元加权电容器阵列的构造性共质心布局与布线
  12. 小白一键重装有linux,linux小白说说用linux的感受
  13. 使用思博伦卫星导航模拟器GSS7000方法
  14. Ubuntu图形界面升级方法
  15. 06-jQuery的文档操作***
  16. 2019年3月计算机一级考试试题,2019年3月计算机一级考试MsOffice操作试题(五)
  17. 好牛逼的技术——Android运行时Crash自动恢复框架:Recovery
  18. 同步fork的上游仓库代码更新:git pull upstream
  19. 十年海军为什么选择开启代码人生?
  20. 基于M实现的JWT解决方案

热门文章

  1. micropython固件源码_Micropython加速物联网开发7 - Micropython源码编译与固件更新
  2. QT中DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80040216 ()问题的解决
  3. C语言 memcpy_s 函数 - C语言零基础入门教程
  4. hook控制浏览器的方法_Java-Hook技术-入门实践+反射、动态代理、热修复再看看
  5. mysql 函数返回查询结果_MySQL数据库中常用查询函数简介
  6. coap python3_node-coap入门(三)——Observe
  7. lisp 读取dwg 统计信息_预制梁厂 BIM 技术和自动化、信息化应用方案
  8. java防止上传恶意文件_从补丁分析到在野利用:揭秘CVE20201464 Windows文件签名验证绕过漏洞疑云...
  9. c语言程序设计算机基础知识,2018春C语言程序设计(合肥工业大学)
  10. 【JAVA基础篇】彻底搞懂拆箱装箱