喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)

一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方。

输入格式:

输入第一行给出3个正整数nmk,其中n(≤10000)是总的山头数(于是假设每个山头从1到n编号)。接下来的m行,每行给出2个不超过n的正整数,数字间用空格分开,分别代表可以听到彼此的两个山头的编号。这里保证每一对山头只被输入一次,不会有重复的关系输入。最后一行给出k(≤10)个不超过n的正整数,数字间用空格分开,代表需要查询的山头的编号。

输出格式:

依次对于输入中的每个被查询的山头,在一行中输出其发出的呼喊能够连锁传达到的最远的那个山头。注意:被输出的首先必须是被查询的个山头能连锁传到的。若这样的山头不只一个,则输出编号最小的那个。若此山头的呼喊无法传到任何其他山头,则输出0。

输入样例:

7 5 4
1 2
2 3
3 1
4 5
5 6
1 4 5 7

输出样例:

2
6
4
0

思路:一层一层遍历,途中记录一下每个相连的编号在那一层 

#include<bits/stdc++.h>using namespace std;const int N=10010;int level[N],vis[N];
vector<int>v[N];
int n,m,k;int bfs(int u)
{memset(vis,0,sizeof vis);memset(level,0,sizeof level);queue<int>q;q.push(u);while(!q.empty()){int x=q.front();vis[x]=1;q.pop();for(int i=0;i<v[x].size();i++){if(!level[v[x][i]]&&!vis[v[x][i]]){level[v[x][i]]=level[x]+1;vis[v[x][i]]=1;q.push(v[x][i]);}}}int maxx=0;for(int i=1;i<=n;i++)if(maxx<level[i]) maxx=level[i];//保存最大层数for(int i=1;i<=n;i++)if(maxx&&maxx==level[i]) return i;//返回最大层数的最小编号,无相连的跳过return 0;
}
int main()
{cin>>n>>m>>k;while(m--){int a,b;cin>>a>>b;v[a].push_back(b);v[b].push_back(a);}int x;while(k--){cin>>x;cout<<bfs(x)<<endl;}return 0;
}

L3-008 喊山 (30 分)(bfs)相关推荐

  1. PTA | 喊山 (30 分) BFS 拼题A

    喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...

  2. PTA:7-102 喊山 (30分)---解析(bfs广度优先搜索,vector)

    7-102 喊山 (30分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的& ...

  3. 【CCCC】L3-008 喊山 (30分),BFS搜索最长路,水题

    problem L3-008 喊山 (30分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中 ...

  4. 7-9 喊山 (30 分)

    喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...

  5. 7-102 喊山 (30 分)(bfs

    添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=1e4+9; vector<int>v[N]; ...

  6. 团体程序设计天梯赛(L3-008 喊山 (30 分))

    题目: 思路分析: 读懂题目就是一个求最短dijsktra+最长路的模型 代码实现: /* *@Author: GuoJinlong *@Language: C++ */ //#include < ...

  7. 7-7 六度空间 (30 分)(BFS遍历详解)(DFS最后一个点过不去)

    7-7 六度空间 (30 分) 一:题目: 六度空间"理论又称作"六度分隔(Six Degrees of Separation)"理论.这个理论可以通俗地阐述为:&quo ...

  8. L3-008 喊山PTA(BFS)

    喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...

  9. 7-29 喊山 (30 point(s))

    喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...

最新文章

  1. ICLR 2020| 最新NAS benchmark:0.1秒完成NAS算法搜索
  2. 【CentOS 7MySQL常用操作2】,连接MySQL#180112
  3. 【温故知新】CSS学习笔记(链接伪类选择器)
  4. android 异步刷新 方法,android应用中实现异步更新UI的方法有哪些
  5. ABAP help click F1
  6. CONTROLLER_NAME 常量 当前访问的控制器
  7. JavaOne 2016后续活动
  8. FreeRTOS任务挂起与解除
  9. 举例说明操作系统在计算机系统中的重要地位,第一二三章作业参考答案
  10. 计算机网络-自顶向下方法(7th) 第四章 Review Questions 英文题目
  11. python zfill_Python字符串zfill()
  12. 俄罗斯方块代码 java_俄罗斯方块java代码-java编写俄罗斯方块代码详解分享
  13. 单片机c语言案例教程,单片机C语言案例教程教学指南.doc
  14. java手风琴代码_JavaScript实现手风琴效果
  15. 关于团队协作开发的一些思考
  16. 伦敦国王学院计算机申请要求,伦敦大学国王学院计算机科学与管理本科申请条件.pdf...
  17. 化妆品护肤DiY的广告界面 简单的jquery 图片无缝滚动
  18. Java基于ssm的大学生社团管理系统 计算机毕业设计
  19. 华为无线设备WLAN QoS配置命令
  20. 当初”再小的个体也有自己的品牌“的愿望实现了吗?

热门文章

  1. RocketMQ使用详解以及高并发系统实践问题
  2. 计算机视觉与摄影测量
  3. VB 中自定义弹出提示框的位置
  4. JAVA JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询
  5. 计算机学霸装学渣,为什么很多真学霸喜欢装假学渣,你身边有这样的人吗?
  6. 数据结构 哈希表 ASL 失败查找
  7. python写网站和java写网站的区别-做Web开发,编程语言用Python还是Java好呢?
  8. Springboot高考志愿填报信息管理系统毕业设计源码251922
  9. Unity Android Icons 配置
  10. log4cplus日志格式输出配置