题目描述

匈奴入侵了!!!!

现在长城上的1号烽火台点燃了烽火。一个时辰后,与1号烽火台紧邻的2、3号烽火台也点燃了烽火。再一个时辰后,与3号烽火台紧邻的4号烽火台也点燃了烽火……最终,烽火应该传达到每一个烽火台上。

现在正在1号烽火台坚守的指挥官有求于你,希望你帮他计算,他们点燃烽火之后,需要多久才能让整个长城上的烽火台都点燃烽火?

已知,有N个烽火台,烽火台间有M条连接。

输入

第一行输入N,M,用空格隔开,烽火台的编号从1到N(2<=N<=100);

接下来M行,输入A,B两个数,用空格隔开,分别表示两个相互连通的烽火台的序号。

输出

输出长城上的烽火台全部点燃需要的时辰数

样例输入

4 4

1 2

3 4

2 3

3 1

样例输出

2

一号烽火台点然后,与一号烽火台相连的烽火台集合A一小时后会被点燃,再过一个小时,与集合A相连的烽火台集合B也会被点燃。当所有的烽火台都被点燃后,最后一个被点燃的烽火台的时间就是最终的时间。

#include<iostream>#include<queue>using namespace std;struct point {                     //用来存储烽火台的信息int n;int time;};int main(){int book[101] = { 0 };     //用来记录烽火台是否点燃int map[101][101] = { 0 }; //用来记录烽火台之间连接关系int n, m, flag;queue<point> que;cin>> n >> m;for (int i = 0; i < m;i++) {int a, b;cin>> a >> b;map[a][b]= 1;map[b][a]= 1;}book[1]= 1;point temp;temp.n= 1;           //一号烽火台temp.time= 0;que.push(temp);       //一号烽火台入队while (!que.empty()) {     //队列不为空时循环int a;a= que.front().n;        //a记录当前烽火台的编号for (int i = 1; i <= n;i++) {if (map[a][i] == 1&& book[i] != 1) {   //若可以到达i号烽火台,且i号烽火台还未点燃book[i]= 1;      //i号记录为点燃temp.n= i;           //i号的信息放入temptemp.time= que.front().time + 1;  //点燃i号的时间等于当前烽火台点燃的时间加1que.push(temp);       //i号烽火台入队}}flag= 1;         //flag为1代表全部点燃,现在假定全部点燃for (int i = 1; i <= n;i++) { //遍历烽火台if (book[i] == 0) {            //有一个未点燃,flag为0,退出循环flag= 0;break;}}que.pop();        //之前搜索过的烽火台退出队列if (flag) {       //若全部点燃cout  << que.back().time; //输出队列中最后一个烽火台的时间,退出循环break;}}return 0;}

算法题:长城 广度优先搜索相关推荐

  1. 【经典算法题】单词搜索

    [经典算法题]单词搜索 Leetcode 0079 单词搜索 题目描述:Leetcode 0079 单词搜索 分析 本题的考点:递归回溯. 首先我们枚举单词的起点,一共有n×mn \times mn× ...

  2. 算法复习|广度优先搜索BFS

    广度优先搜索BFS 文章目录 广度优先搜索BFS HDU-1253 胜利大逃亡 HDU-1241 Oil Deposits 算法思想 从初始状态S开始,利用一定的规则,生成所有下一层的状态,依次入队 ...

  3. 1091. Acute Stroke (30)-PAT甲级真题(广度优先搜索)

    One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...

  4. 数据结构与算法--图的广度优先搜索 (BFS)

    广度优先搜索即是 一种"地毯式"层层推进的搜索策略,即先查找离起始顶点最近的,然后是次近的,依次往外搜索. BFS解决的最短路径问题. 采用BFS进行遍历的话,需要依赖队列,先进先 ...

  5. 每日刷题总结——广度优先搜索 / 深度优先搜索

    目录 286. 墙与门 417. 太平洋大西洋水流问题 1469. 寻找所有的独生节点 582. 杀掉进程 863. 二叉树中所有距离为 K 的结点 752. 打开转盘锁 1319. 连通网络的操作次 ...

  6. 广度优先搜索_计算机入门必备算法——广度优先遍历搜索

    1.  序言 又很久没有学习了,上次学到哈希表又称散列表的相关知识,这次我们学习一种新的数据结构来建立网络模型.这种数据结构被称作图.首先,我们先应该先了解一下什么是图,其次学习第一种图的算法,这种图 ...

  7. 小白的算法初识课堂(part6)--广度优先搜索

    学习笔记 学习书目:<算法图解>- Aditya Bhargava 文章目录 图简介 图是啥 广度优先搜索 寻找最短路径 队列 实现图 实现算法 运行时间 图简介 今天是五一,假如我要从家 ...

  8. 《算法图解》学习笔记(六):图和广度优先搜索(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  9. 这70道算法题你都会的话,可以直接去字节跳动了!

    前言 知识的广度来自知识的深度,学习如果不成体系那是多可怕的一件事儿,希望我们在未来的学习道路上坚守初心,不要给自己留下遗憾,以自己喜欢的方式生活,做自己喜欢做的事,做一个独一无二的自己! 1.说一下 ...

最新文章

  1. Windows XP中的用户分为3类。
  2. java异常处理图片_Java处理图片时出现异常
  3. c 函数多次声明_【C语言】- static和extern关键字 - 对函数的作用!
  4. mysql cannot connect_【IT专家】mysql远程访问cannot connect(10038) 问题解决的过程
  5. tif 高程_使用ArcGIS提取高程点
  6. 芒果超媒2021年净利润21亿元 芒果TV会员数达5040万
  7. 必须了解的Web安全知识(第一部分:HTTPS,TLS,SSL,CORS,CSP)
  8. 超强阵容实操教学, 0 基础 Flink 训练营免费抢报啦!
  9. SpringBoot在前端发送url时,不能识别特殊字符的问题
  10. 读Thinking in Java(1~4)
  11. c 文件中调用 cpp 中函数
  12. python拼写检查_python 英语单词拼写检查算法
  13. 语音之家SOTA | TIOBE 滚动测试报 2021.10
  14. 创建型模式——建造者模式(Builder Pattern)
  15. MongoDB实战-生产环境中分片的部署与配置
  16. 「吕本富」交易的四个阶段
  17. 一次算法作业hhhhhh
  18. android模拟器游戏大全,安卓模拟器游戏大全_小鸡模拟器
  19. 【Python】唯品会购买商品
  20. 微信小程序实战(仿小米商城)

热门文章

  1. 音乐计算机ut乐谱大全,电子钢琴乐谱
  2. Blender——苹果的建模
  3. 实用计算机技学啥术,学计算机实用技术教程: Visual Basic
  4. python生成pdf报表
  5. python中一元二次方程的判别式_一元二次方程难?根的判别式常考这四题型,若只知其一难考高分...
  6. php调用c++程序
  7. 虹软开发心得---多线程实战开发避坑分享(C#)
  8. 【实训知识点记录】2.1插播结课作业需要的技术栈介绍
  9. 如何在DigitalOcean中使用Terraform
  10. 小米游戏本DNS服务器未响应,小米路由器5G WiFi信号搜不到怎么办?