[USACO09OPEN]捉迷藏Hide and Seek
OJ题号:洛谷2951
思路:Dijkstra+堆优化。注意是无向图,所以加边时要正反各加一遍。
#include<cstdio>
#include<vector>
#include<ext/pb_ds/priority_queue.hpp>
#define dis first
#define to second
const int N=,inf=0x7fffffff;
typedef std::pair<int,int> Edge;
int n,m,d[N];
std::vector<int> e[N];
void add(int a,int b) {
e[a].push_back(b);
}
void dijkstra() {
__gnu_pbds::priority_queue<Edge,std::greater<Edge> > q;
__gnu_pbds::priority_queue<Edge,std::greater<Edge> >::point_iterator a[n+];
for(int i=;i<=n;i++) {
a[i]=q.push((i==)?(Edge){,i}:(Edge){inf,i});
d[i]=(i==)?:inf;
}
while(!q.empty()) {
Edge x=q.top();
q.pop();
if(x.dis==inf) continue;
int u=x.to;
for(std::vector<int>::iterator i=e[u].begin();i<e[u].end();i++) {
int& next=*i;
if(d[u]+<d[next]) {
d[next]=d[u]+;
q.modify(a[next],(Edge){d[next],next});
}
}
}
}
int main() {
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++) {
int a,b;
scanf("%d%d",&a,&b);
add(a,b);
add(b,a);
}
dijkstra();
int id,dis=,count=;
for(int i=;i<=n;i++) {
if(d[i]==dis) count++;
if(d[i]>dis) {
id=i;
dis=d[i];
count=;
}
}
printf("%d %d %d\n",id,dis,count);
return ;
}
[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 ...
- P2951 【[USACO09OPEN]捉迷藏Hide and Seek】
典型的最短路,而且只要再加一点点操作,就能得到答案 所以可以直接套模板 具体看程序:: #include<cstdio> #include<queue>//队列专属头文件 #i ...
- 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被这门对他来说无比简单的课弄得非常寂寞,为了消除寂寞感,他 ...
随机推荐
- b站评论爬取
var userData = {}; var startPage = 0; var endPage = 0; var startTime = ""; var endTime = & ...
- 『转载』hadoop 1.X到2.X的变化
表1新旧hadoop脚本/变量/位置变化表 改变项 原框架中 新框架中(Yarn) 备注 配置文件位置 ${hadoop_home_dir}/conf ${hadoop_home_dir}/etc/h ...
- 003_Linux的Cgroup<实例详解>
为什么要有cgroup Linux系统中经常有个需求就是希望能限制某个或者某些进程的分配资源.也就是能完成一组容器的概念,在这个容器中,有分配好的特定比例的cpu时间,IO时间,可用内存大小等.于是就 ...
- 配置vCenter Server Appliance 6.7
=============================================== 2019/4/14_第1次修改 ccb_warlock == ...
- Java上传文件FTP服务器代码
1. 在实际的应用重,通常是通过程序来进行文件的上传. 2. 实现java上传文件到ftp服务器中 新建maven项目 添加依赖 <dependency> <groupId>c ...
- Windows不能在本地计算机启动MongoDB,错误代码 100
今天在计算机上面启动MongoDB时,直接给我报错,Windows不能在本地计算机启动MongoDB,服务错误代码 100. 这种问题解决方法是: 找到data文件夹db下面的mongod.lock文 ...
- java I/O系统 LineNumberReader类
LineNumbeReader类可以很方便的读取文件的行号 package ch13; import java.io.*; import io.BufferedInputFile; public cl ...
- java控制语句 if-else while do-while for return break continue goto switch default
if for //: object/ForEachFloat.java package object; import java.util.Random; public class ForEachFlo ...
- python易错题之作用域
name = "lzl" def f1(): print(name) def f2(): name = "eric" f1() f2() //结果为 lzl 记 ...
- poj2828 伸展树模拟
用伸展树模拟插队比线段树快乐3倍.. 但是pojT了.别的oj可以过,直接贴代码. 每次更新时,找到第pos个人,splay到根,然后作为新root的左子树即可 #include<iostrea ...