BZOJ3402: [Usaco2009 Open]Hide and Seek 捉迷藏
来源:互联网 发布:淘宝网的卖家中心在哪 编辑:程序博客网 时间:2024/06/05 07:21
易水人去,明月如霜。
Description
贝茜在和约翰玩一个“捉迷藏”的游戏.
她正要找出所有适合她躲藏的安全牛棚.一共有N(2≤N≤20000)个牛棚,被编为1到N号.她知道约翰(捉牛者)从牛棚1出发.所有的牛棚由M(1≤M≤50000)条双向路连接,每条双向路连接两个不同的牛棚.所有的牛棚都是相通的.贝茜认为同牛棚1距离最远的的牛棚是安全的.两个牛棚间的距离是指,从一个牛棚到另一个牛棚最少需要通过的道路数量.请帮贝茜找出所有的安全牛棚.
Input
第1行输入两个整数N和M,之后M行每行输入两个整数,表示一条路的两个端点.
Output
仅一行,输出三个整数.第1个表示安全牛棚(如果有多个,输出编号最小的);第2个表示牛棚1和安全牛棚的距离;第3个表示有多少个安全的牛棚.
Sample Input
6 7
3 6
4 3
3 2
1 3
1 2
2 4
5 2
3 6
4 3
3 2
1 3
1 2
2 4
5 2
Sample Output
4 2 3
思路:边权是固定的求一遍BSF就好啦
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <cmath>#include <algorithm>#include <queue>#define maxn 50005*2using namespace std;int read(){ char ch;int s=0,f=1;ch=getchar(); while(ch>'9'||ch<'0') { if(ch=='-') f*=-1;ch=getchar(); } while(ch>='0'&&ch<='9') {s=s*10+ch-48;ch=getchar(); } return s*f;}struct node{ int y,nxt;}e[50005*2];int head[20005],cnt,dis[20005];int q[20010];void add(int x,int y){ cnt++;e[cnt].y=y,e[cnt].nxt=head[x]; head[x]=cnt;}int step=-1; int n,m; void bfs() { memset(dis,-1,sizeof(dis)); dis[1]=0,step=0; int h=0,t=1;q[0]=1; while(h!=t) { int now = q[h++]; for(int i=head[now];i;i=e[i].nxt) { int v=e[i].y; if(dis[v]==-1) { dis[v]=dis[now]+1; step=max(dis[v],step); q[t++]=v; } } } }int main(){ n=read(),m=read(); for(int i=1;i<=m;i++) { int u,v; u=read(),v=read(); add(u,v),add(v,u); } bfs(); int ans=0; int dia; for(int i=n;i>=1;i--) { if(dis[i]==step) ans++,dia=i; } printf("%d %d %d",dia,step,ans); return 0;}
阅读全文
0 0
- bzoj3402 [Usaco2009 Open]Hide and Seek 捉迷藏
- BZOJ3402: [Usaco2009 Open]Hide and Seek 捉迷藏
- bzoj3402 [Usaco2009 Open]Hide and Seek 捉迷藏
- 3402: [Usaco2009 Open]Hide and Seek 捉迷藏 最短路
- BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏 最短路
- bzoj 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
- 洛谷P2951 [USACO09OPEN]捉迷藏Hide and Seek
- SPFA——热浪Heat Wave、捉迷藏Hide and Seek、电车
- 躲猫猫 hide-and-seek
- HYSBZ1941-Hide and Seek
- bzoj-1941 Hide and Seek
- [BZOJ 1941]Hide and Seek
- [BZOJ1941][Sdoi2010]Hide and Seek
- [bzoj1941][SDOI2010]Hide and Seek
- 【SDOI2010】【BZOJ1941】Hide and Seek
- bzoj1941: [Sdoi2010]Hide and Seek
- 1941: [Sdoi2010]Hide and Seek
- 【SDOI2010】bzoj1941 Hide and Seek
- MFC 获取屏幕像素大小
- AtomicInteger的介绍和使用
- 【期刊&&会议】机器学习&&深度学习 + 计算机视觉(To be continued..)
- groovy 文件的读取
- java线程池常用类
- BZOJ3402: [Usaco2009 Open]Hide and Seek 捉迷藏
- 单点登录原理与简单实现
- Java Linux 时区同步设置和重启 arm端
- 关于NetKeeper(创翼)升级后,无法共享WIFI问题的解决-猎豹、360都可
- 服务器常用状态码以及它的含义
- Android开发错误记录:MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
- Java虚拟机笔记--2
- Spring 注解大全
- QTP应用实例-G.8032测试自动化(4)数据扩展