L3-008 喊山 (30 分)(bfs)
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)
一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方。
输入格式:
输入第一行给出3个正整数n
、m
和k
,其中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)相关推荐
- PTA | 喊山 (30 分) BFS 拼题A
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...
- PTA:7-102 喊山 (30分)---解析(bfs广度优先搜索,vector)
7-102 喊山 (30分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的& ...
- 【CCCC】L3-008 喊山 (30分),BFS搜索最长路,水题
problem L3-008 喊山 (30分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中 ...
- 7-9 喊山 (30 分)
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...
- 7-102 喊山 (30 分)(bfs
添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=1e4+9; vector<int>v[N]; ...
- 团体程序设计天梯赛(L3-008 喊山 (30 分))
题目: 思路分析: 读懂题目就是一个求最短dijsktra+最长路的模型 代码实现: /* *@Author: GuoJinlong *@Language: C++ */ //#include < ...
- 7-7 六度空间 (30 分)(BFS遍历详解)(DFS最后一个点过不去)
7-7 六度空间 (30 分) 一:题目: 六度空间"理论又称作"六度分隔(Six Degrees of Separation)"理论.这个理论可以通俗地阐述为:&quo ...
- L3-008 喊山PTA(BFS)
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...
- 7-29 喊山 (30 point(s))
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...
最新文章
- ICLR 2020| 最新NAS benchmark:0.1秒完成NAS算法搜索
- 【CentOS 7MySQL常用操作2】,连接MySQL#180112
- 【温故知新】CSS学习笔记(链接伪类选择器)
- android 异步刷新 方法,android应用中实现异步更新UI的方法有哪些
- ABAP help click F1
- CONTROLLER_NAME 常量 当前访问的控制器
- JavaOne 2016后续活动
- FreeRTOS任务挂起与解除
- 举例说明操作系统在计算机系统中的重要地位,第一二三章作业参考答案
- 计算机网络-自顶向下方法(7th) 第四章 Review Questions 英文题目
- python zfill_Python字符串zfill()
- 俄罗斯方块代码 java_俄罗斯方块java代码-java编写俄罗斯方块代码详解分享
- 单片机c语言案例教程,单片机C语言案例教程教学指南.doc
- java手风琴代码_JavaScript实现手风琴效果
- 关于团队协作开发的一些思考
- 伦敦国王学院计算机申请要求,伦敦大学国王学院计算机科学与管理本科申请条件.pdf...
- 化妆品护肤DiY的广告界面 简单的jquery 图片无缝滚动
- Java基于ssm的大学生社团管理系统 计算机毕业设计
- 华为无线设备WLAN QoS配置命令
- 当初”再小的个体也有自己的品牌“的愿望实现了吗?