P2951 【[USACO09OPEN]捉迷藏Hide and Seek】
典型的最短路,而且只要再加一点点操作,就能得到答案
所以可以直接套模板
具体看程序::
#include<cstdio>
#include<queue>//队列专属头文件
#include<algorithm>
using namespace std;
const int N=;
int a[N];
int n,m,l,sum,ans;
int d1[N],t[N],head1[N],next1[N],w1[N],adj1[N],k1;
bool f1[N];
queue<int> q1;//比较喜欢定义全局变量
void add(int u,int v){//加边操作,因为每条边权值为1,就不用第三个变量了
next1[++k1]=head1[u];
head1[u]=k1;
w1[k1]=;//如果不是1,就把一换成变量t(自己定义)
adj1[k1]=v;
}
void spfa(int s,int e){//SPFA,最短路模板
for(int i=;i<=n;i++)
d1[i]=<<;//赋无限大
d1[s] =;
q1.push(s);
f1[s]=true ;
while(!q1.empty()){
int top1=q1.front() ;
q1.pop() ;//出队
f1[top1]=false;
for(int j=head1[top1];j!=;j=next1[j]){
if(d1[adj1[j]]>d1[top1]+w1[j]){//松弛操作
t[adj1[j]]++;
d1[adj1[j]]=d1[top1]+w1[j] ;
if(!f1[adj1[j]]){
q1.push(adj1[j]);
f1[adj1[j]]=true;
}
}
}
}
}
int main(){
//freopen("hideseek.in","r",stdin);
//freopen("hideseek.out","w",stdout);不要在意。。。
scanf("%d%d",&n,&m);//读入
for(int i=;i<=m;i++){
int x,y;
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);//加边操作,因为是无向图,要加两次
}
spfa(,n);//调用
for(int i=;i<=n;i++){
if(d1[i]>l){//如果出现了比现在大的点,就交换
l=d1[i];
ans=i;
sum=;
}
else{
if(d1[i]==l){//一样就加
sum++;
}
}
}
printf("%d %d %d\n",ans,l,sum);//输出
return ;
}
不用数组模拟队列其实蛮麻烦的,我也只是套用模板,懒得改了,比才是现场写还是要写自己有把握的
那个。。新人开博鼓励一下吧~~
P2951 【[USACO09OPEN]捉迷藏Hide and Seek】的更多相关文章
- 洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek
题目戳 题目描述 Bessie is playing hide and seek (a game in which a number of players hide and a single play ...
- [USACO09OPEN]捉迷藏Hide and Seek
OJ题号:洛谷2951 思路:Dijkstra+堆优化.注意是无向图,所以加边时要正反各加一遍. #include<cstdio> #include<vector> #incl ...
- Luogu 2951 捉迷藏Hide and Seek
P2951 [USACO09OPEN]捉迷藏Hide and Seek 题目描述 Bessie is playing hide and seek (a game in which a number o ...
- USACO Hide and Seek
洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek 洛谷传送门 JDOJ 2641: USACO 2009 Open Silver 1.Hide and Seek JDOJ传 ...
- BZOJ3402: [Usaco2009 Open]Hide and Seek 捉迷藏
3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 51 Solved: 4 ...
- BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
题目 3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MB Description 贝 ...
- 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 78 Solved: 6 ...
- 【BZOJ-1941】Hide and Seek KD-Tree
1941: [Sdoi2010]Hide and Seek Time Limit: 16 Sec Memory Limit: 162 MBSubmit: 830 Solved: 455[Submi ...
- [BZOJ1941][Sdoi2010]Hide and Seek
[BZOJ1941][Sdoi2010]Hide and Seek 试题描述 小猪iPig在PKU刚上完了无聊的猪性代数课,天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞,为了消除寂寞感,他 ...
随机推荐
- CI/CD----jenkins安装配置
1.下载jenkins rpm包. https://pkg.jenkins.io/redhat/ 2.安装 rpm -ivh jenkins-2.182-1.1.noarch systemctl st ...
- Mongodb中的js语法
定义一个变量 > var len = 10; For循环 这里的db和data都可以作为对象 save是方法 接收一个临时定义的对象 > for(var i = 0; i < len ...
- 多线程(二)Object类方法、线程的操作sleep(),join(),interrupt(),yield()
四.Object类简介 Object类是所有类的超类,之所以放在线程部分是因为其方法很多是和线程有关的.比如以下三个: wait()方法.wait(long timeout)和wait(long ti ...
- sklearn学习一
转发说明:by majunman from HIT email:2192483210@qq.com 简介:scikit-learn是数据挖掘和数据分析的有效工具,它建立在 NumPy, S ...
- CSS的相关知识——背景,超链接,列表,表格,奇偶选择器
接着上一篇总结一些css的相关知识 ㈠背景 背景属性 1.background-color 背景颜色 rgb函数设置 2.background-image 背景图片 url(“logo.jp ...
- Codeforces Round #201 (Div. 2). E--Number Transformation II(贪心)
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description You ar ...
- python 判断是字母的多种方法
方法一:isalpha() "a".isalpha() 方法二:string.letters string.uppercase import string s=" ...
- C++入门经典-例5.16-输出引用
1:如不加特殊说明,一般认为引用指的都是左值引用.引用实际上是一种隐式指针,它为对象建立一个别名,通过操作符&来实现,引用的形式如下: 数据类型 & 表达式: 例如: int a=10 ...
- [翻译]扩展C#中的异步方法
翻译自一篇博文,原文:Extending the async methods in C# 异步系列 剖析C#中的异步方法 扩展C#中的异步方法 C#中异步方法的性能特点. 用一个用户场景来掌握它们 在 ...
- Scala学习(四)——模式匹配与函数组合
函数组合 让我们创建两个函数: def f(s: String) = "f(" + s + ")" def g(s: String) = "g(&qu ...