BZOJ—— 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
http://www.lydsy.com/JudgeOnline/problem.php?id=3402
Description
Input
Output
仅一行,输出三个整数.第1个表示安全牛棚(如果有多个,输出编号最小的);第2个表示牛棚1和安全牛棚的距离;第3个表示有多少个安全的牛棚.
Sample Input
3 6
4 3
3 2
1 3
1 2
2 4
5 2
Sample Output
HINT
Source
SPFA 对于一个到达过的点,更新他的最小值,没到达的更新当前值,
记录到达每个点的次数,最后找出最长距离判断判断就好了。
#include <cstring>
#include <cstdio>
#include <queue> inline void read(int &x)
{
x=; register char ch=getchar();
for(; ch>''||ch<''; ) ch=getchar();
for(; ch>=''&&ch<=''; ch=getchar()) x=x*+ch-'';
} const int M();
const int N(); int n,m,head[N],sumedge;
int _v[M<<],_nex[M<<];
inline void ins(int u,int v)
{
_v[++sumedge]=v,_nex[sumedge]=head[u];head[u]=sumedge;
_v[++sumedge]=u,_nex[sumedge]=head[v];head[v]=sumedge;
} bool inq[N];
int dis[N],cnt[N],id[M]; inline void SPFA(int s)
{
for(int i=; i<=n; ++i) dis[i]=-;
std:: queue<int>que;
dis[s]=; que.push(s);
for(int u,v; !que.empty(); )
{
u=que.front(); que.pop(); inq[u]=;
for(int i=head[u]; i; i=_nex[i])
{
if(dis[_v[i]]==-)
{
cnt[_v[i]]++;
dis[_v[i]]=dis[u]+;
if(!inq[_v[i]])
{
que.push(_v[i]);
inq[_v[i]]=true;
}
}
else if(dis[_v[i]]>dis[u]+)
{
cnt[_v[i]]++;
dis[_v[i]]=dis[u]+;
if(!inq[_v[i]])
{
que.push(_v[i]);
inq[_v[i]]=true;
}
}
} }
} int Presist()
{
read(n),read(m);
for(int u,v; m--; )
read(u),read(v),ins(u,v);
SPFA(); int now=-,pos,num;
for(int i=; i<=n; ++i)
if(dis[i]>now) now=dis[i],pos=i,num=cnt[i];
printf("%d %d ",pos,now); num=;
for(int i=; i<=n; ++i) num+=(dis[i]==now);
printf("%d\n",num);
return ;
} int Aptal=Presist();
int main(int argc,char**argv){;}
BZOJ—— 3402: [Usaco2009 Open]Hide and Seek 捉迷藏的更多相关文章
- BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
题目 3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MB Description 贝 ...
- BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏(最短路)
这个= =一看就是最短路了= = PS:最近有点懒 = = 刚才看到一道平衡树的裸题还嫌懒不去写= =算了等刷完这堆水题再去理= = CODE: #include<cstdio>#incl ...
- 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 78 Solved: 6 ...
- 【BZOJ】3402: [Usaco2009 Open]Hide and Seek 捉迷藏(spfa)
http://www.lydsy.com/JudgeOnline/problem.php?id=3402 又是spfa水题.. #include <cstdio> #include < ...
- BZOJ3402: [Usaco2009 Open]Hide and Seek 捉迷藏
3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 51 Solved: 4 ...
- B3402 [Usaco2009 Open]Hide and Seek 捉迷藏 最短路
直接最短路板子,dij堆优化. 题干: 题目描述 贝茜在和约翰玩一个“捉迷藏”的游戏. 她正要找出所有适合她躲藏的安全牛棚.一共有N(≤N≤)个牛棚,被编为1到N号.她知道约翰(捉牛者)从牛棚1出发. ...
- 【BZOJ】【1941】【SDOI2010】Hide and Seek
KD-Tree 一开始看错题了
- bzoj:1941: [Sdoi2010]Hide and Seek
1941: [Sdoi2010]Hide and Seek Time Limit: 16 Sec Memory Limit: 162 MBSubmit: 531 Solved: 295[Submi ...
- 洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek
题目戳 题目描述 Bessie is playing hide and seek (a game in which a number of players hide and a single play ...
随机推荐
- 洛谷P1540 机器翻译
题目链接:https://www.luogu.org/problemnew/show/P1540
- json对象数据列数
// var len = data.length(); // alert(data.Rows.length); var colCount = (function count(){//一条记录中有几个键 ...
- loj2291 「THUSC 2016」补退选
ref pkusc 快到了,做点 thusc 的题涨涨 rp-- #include <iostream> #include <cstring> #include <cst ...
- 倍增 - 强制在线的LCA
LCA 描述 给一棵有根树,以及一些询问,每次询问树上的 2 个节点 A.B,求它们的最近公共祖先. !强制在线! 输入 第一行一个整数 N. 接下来 N 个数,第 i 个数 F i 表示 i 的父亲 ...
- git+jenkins持续集成一:git上传代码
先注册一个账号,注册地址:https://github.com/ 记住地址 下载git本地客户端,下载地址:https://git-scm.com/download/win 一路next傻瓜安装,加入 ...
- rpm包管理 命令
rpm -ivh package.rpmrpm -ivh --force package_name.rpm # ...conflict with...rpm -ivh --nodeps packag ...
- DataFrame的iloc与loc的区别是什么?
对于一个DataFrame A,A.loc[k]是读取A中index为k的那一行.A.iloc[k]是读取A中的第k行.
- 【转】UGUI(小地图的实现)与游戏关卡选择的简单实现
http://www.jianshu.com/p/68637029e9df 游戏中小地图的实现(场景用简单Cube组成先搭建如下图场景,真实场景实现方法也是一样) 图1-1小地图效果图 1.创建好场景 ...
- java BigDecimal工具类
package com.core.calculate; import java.math.BigDecimal; import java.text.DecimalFormat; /** * Creat ...
- NodeJS npm 包装包失败的解决方案
这个也是网上搜的,亲自试过,非常好用! 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set reg ...