博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
团体程序设计天梯赛L3-008——喊山(bfs)
阅读量:2345 次
发布时间:2019-05-10

本文共 1286 字,大约阅读时间需要 4 分钟。

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

这里写图片描述

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

输入格式:

输入第一行给出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

正赛的时候用了dfs部分过,最近练了下bfs才发现这道题其实很简单。。。

#include 
#include
#include
#include
#include
#define INF 0x3f3f3f3f#define MAXN 10010using namespace std;vector
a[MAXN];struct Node{ int num,step;};int vis[MAXN];void bfs(int v){ Node start; start.num=v; start.step=0; vis[v]=1; queue
q; q.push(start); int max=0,ans=MAXN; while(!q.empty()) { Node tmp=q.front(); Node tmp1; //cout<
<<" "<
<
=max) { if(tmp.step>max) { max=tmp.step; ans=tmp.num; } else if(tmp.step==max) { if(tmp.num
>n>>m>>k; for(int i=0;i
>u>>v; a[u].push_back(v); a[v].push_back(u); } for(int i=0;i
>t; memset(vis,0,sizeof(vis)); bfs(t); } return 0;}

转载地址:http://ficvb.baihongyu.com/

你可能感兴趣的文章
对于移动平均算法,是计算某变量之前n个数值的算术平均,正确的说法是:----腾讯2016研发工程师在线模拟笔试题
查看>>
某一速率为100M的交换机有20个端口,其一个端口上连着一台笔记本电脑,此电脑从迅雷上下载一部1G的电影需要的时间可能是多久?
查看>>
在linux编程中,以下哪个TCP的套接字选项与nagle算法的开启和关闭有关?----腾讯2016研发工程师在线模拟笔试题
查看>>
某二叉树的先根遍历序列和后根遍历序列正好相反,则该二叉树具有的特征是()----腾讯2016研发工程师在线模拟笔试题
查看>>
win32系统里,下面几个sizeof的运行结果是()----腾讯2016研发工程师在线模拟笔试题
查看>>
若系统中有五台打印机,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则在不发生死锁的情况下至多允许______个进程参与竞争
查看>>
关于红黑树和AVL树,以下哪种说法不正确?----腾讯2016研发工程师在线模拟笔试题
查看>>
关于epoll和select的区别,哪些说法是正确的?----腾讯2016研发工程师在线模拟笔试题
查看>>
以下是C++的不同数据类型值的比较语句,请问这些判断语句中作为条件部分的语句编写有问题的有:
查看>>
TCP链接中主动断开链接netstat观察可能出现的状态流转是:----腾讯2016研发工程师在线模拟笔试题
查看>>
以下涉及到内存管理的代码段中,有错误的是:----腾讯2016研发工程师在线模拟笔试题
查看>>
下面哪些特性可能导致代码体积膨胀:----腾讯2016研发工程师在线模拟笔试题
查看>>
const的使用方法----腾讯2016研发工程师笔试题(一)
查看>>
哪些设计模式是降低资源使用率:----腾讯2016研发工程师笔试题(一)
查看>>
n个顶点,m条边的全连通图,至少去掉____边才能构成一棵树?----腾讯2016研发工程师笔试题(一)
查看>>
在序列(22,34,55,77,89,93,99,102,120,140)中,采用二分查找,分别查找77,34,99,所需的查找次数分别为()----腾讯2016研发工程师笔试题(一)
查看>>
ip地址10.1.8.0/24和10.1.9.0/24,下列哪个是正确的汇总网段:----腾讯2016研发工程师笔试题(一)
查看>>
默认复制构造函数 bitwise 语义 delete 多次----腾讯2016研发工程师笔试题(一)
查看>>
在C++面向对象编程语言中,以下关于接口的阐述不正确的是:----腾讯2016研发工程师笔试题(一)
查看>>
下面关于HTTP协议的说法正确的是:----腾讯2016研发工程师笔试题(一)
查看>>