博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
阅读量:5061 次
发布时间:2019-06-12

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

题目

3402: [Usaco2009 Open]Hide and Seek 捉迷藏

Time Limit: 3 Sec  Memory Limit: 128 MB

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

Sample Output

4 2 3

HINT

 

Source

题解

呃,这一题嘛。。就是一个SPFA嘛!我数组开小了,怒献一次WA!

代码

1 /*Author:WNJXYK*/ 2 #include
3 #include
4 #include
5 using namespace std; 6 7 int n,m; 8 9 struct Edge{10 int v;11 int t;12 int nxt;13 Edge(){}14 Edge(int a,int b,int c){15 v=a;t=b;nxt=c;16 }17 };18 Edge e[100010];19 int nume;20 int head[20010];21 inline void addSingleEdge(int x,int y,int w){22 e[++nume]=Edge(y,w,head[x]);23 head[x]=nume;24 }25 inline void addEdge(int x,int y,int w){26 addSingleEdge(x,y,w);27 addSingleEdge(y,x,w);28 }29 30 queue
que;31 double dist[20010];32 bool inque[20010];33 34 inline void spfa(int src){35 bool isPrint=false;36 while(!que.empty()) que.pop();37 memset(dist,127,sizeof(dist));38 memset(inque,false,sizeof(inque));39 que.push(src);40 dist[src]=0;41 inque[src]=true;42 while(!que.empty()){43 int now=que.front();44 que.pop();45 for (int i=head[now];i;i=e[i].nxt){46 int v=e[i].v;int w=e[i].t;47 if (dist[v]>dist[now]+w){48 dist[v]=dist[now]+w;49 if (!inque[v]){50 inque[v]=true;51 que.push(v);52 }53 }54 }55 }56 }57 58 int main(){59 scanf("%d%d",&n,&m);60 for (int i=1;i<=m;i++){61 int x,y;62 scanf("%d%d",&x,&y);63 addEdge(x,y,1);64 }65 spfa(1);66 int maxDist=0,minId=1,maxNum=1;67 for (int i=2;i<=n;i++){68 if (maxDist
View Code

 

转载于:https://www.cnblogs.com/WNJXYK/p/4074897.html

你可能感兴趣的文章
[转载]oracle删除数据后的恢复
查看>>
iOS 关于UITabVIew刷新的几种方法(针对初学者)
查看>>
B广搜深搜
查看>>
nyoj-----127星际之门(一)
查看>>
iOS中从相机中选取多张照片
查看>>
ghj1222的代码规范
查看>>
Http code 解析
查看>>
[ JS 进阶 ] Repaint 、Reflow 的基本认识和优化 (2)
查看>>
放到插入到数据库里面
查看>>
php模式设计之 观察者模式
查看>>
c# 获取 bios 序列号
查看>>
[转] Chrome 控制台不完全指南
查看>>
给现下流行的打车软件的一点小建议
查看>>
Git 文件比较
查看>>
leetcode 102. Binary Tree Level Order Traversal
查看>>
def权限,频率,分页
查看>>
Javascript switch语句
查看>>
替换localhost:8080(假域名,本地使用)
查看>>
jQuery学习笔记
查看>>
PHP设计模式:结构型之门面(facade)
查看>>