Problem

题目概述

给你一个无向图,边权都为 \(1\) ,求:离 \(1\) 号点最远的点的编号、最远的距离、有几个点是离 \(1\) 号点最远的。

思路

直接用:优先队列 \(BFS\),先求出 \(1\) 号点到每个点的最短路,存到 \(dis\) 数组中,然后再求 \(max(dis[i])\) ,就搞定了。

错误原因

  • 审题 & 做法错误。

    • 不要想得太过于复杂,比如将最短路转换为负数等等...
  • 细心
    • 注意开 \(Long Long\),因为答案有可能爆 \(int\) 。

代码

#include <iostream>
#include <algorithm>
#include <queue> using namespace std; typedef pair<int, int> PII;
typedef long long LL;
const int N = 2e4 + 10, M = 5e4 + 10;
priority_queue<PII, vector<PII>, greater<PII> > q;
struct node {
int to, next;
} a[M * 2];
bool f[N];
int pre[N], k;
LL d[N];
int n, m, x, y; void add(int x, int y) {
a[++k] = (node) {y, pre[x]};
pre[x] = k;
} void bfs() {
memset(d, 0x3f, sizeof(d));
q.push(make_pair(0, 1));
d[1] = 0;
while (!q.empty()) {
PII h = q.top();
int p = h.second;
q.pop();
if (f[p]) continue;
f[p] = true;
for (int i = pre[p]; i; i = a[i].next) {
int to = a[i].to;
if (d[p] + 1 < d[to]) {
d[to] = d[p] + 1;
q.push(make_pair(d[to], to));
}
}
}
} int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; i++) {
scanf("%d%d", &x, &y);
add(x, y);
add(y, x);
}
bfs();
LL ma = 0, cnt = 0;
for (int i = 1; i <= n; i++) ma = max(ma, d[i]);
for (int i = 1; i <= n; i++) if (d[i] == ma) cnt++;
for (int i = 1; i <= n; i++) {
if (d[i] == ma) {
printf("%d ", i);
break;
}
}
printf("%lld %lld", ma, cnt);
return 0;
}

P2951 [USACO09OPEN] Hide and Seek S 题解的更多相关文章

  1. 洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek

    题目戳 题目描述 Bessie is playing hide and seek (a game in which a number of players hide and a single play ...

  2. Luogu 2951 捉迷藏Hide and Seek

    P2951 [USACO09OPEN]捉迷藏Hide and Seek 题目描述 Bessie is playing hide and seek (a game in which a number o ...

  3. USACO Hide and Seek

    洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek 洛谷传送门 JDOJ 2641: USACO 2009 Open Silver 1.Hide and Seek JDOJ传 ...

  4. [BZOJ1941][Sdoi2010]Hide and Seek

    [BZOJ1941][Sdoi2010]Hide and Seek 试题描述 小猪iPig在PKU刚上完了无聊的猪性代数课,天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞,为了消除寂寞感,他 ...

  5. BZOJ3402: [Usaco2009 Open]Hide and Seek 捉迷藏

    3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 51  Solved: 4 ...

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

    题目 3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec  Memory Limit: 128 MB Description     贝 ...

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

    3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 78  Solved: 6 ...

  8. 【BZOJ1941】Hide and Seek(KD-Tree)

    [BZOJ1941]Hide and Seek(KD-Tree) 题面 BZOJ 洛谷 题解 \(KD-Tree\)对于每个点搜一下最近点和最远点就好了 #include<iostream> ...

  9. 【BZOJ1941】[Sdoi2010]Hide and Seek KDtree

    [BZOJ1941][Sdoi2010]Hide and Seek Description 小猪iPig在PKU刚上完了无聊的猪性代数课,天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞,为了 ...

  10. 【BZOJ-1941】Hide and Seek KD-Tree

    1941: [Sdoi2010]Hide and Seek Time Limit: 16 Sec  Memory Limit: 162 MBSubmit: 830  Solved: 455[Submi ...

随机推荐

  1. Cilium 系列-3-Cilium 的基本组件和重要概念

    系列文章 Cilium 系列文章 前言 安装完了,我们看看 Cilium 有哪些组件和重要概念. Cilium 组件 如上所述,安装 Cilium 时,会安装几个运行组件(有些是可选组件), 它们各是 ...

  2. Elementary OS old version download 旧版本下载

    Elementary OS 号称是最漂亮的Linux发行版,没有之一.确实,他的整体风格看起来就是特别舒服,说不出哪里特别好,但也挑不出什么毛病.相比之下,其他Linux的界面总感觉不太和谐.比如特别 ...

  3. Java并发(十三)----共享存在的问题

    1.小故事 老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快 小南.小女(不同的线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用 但小南不能一天24小时使用算盘 ...

  4. sql注入-基于pikachu靶场学习之SQL注入

    sql注入(pikachu靶场学习之SQL注入) 环境准备 环境:wmware,安装两台win10的虚拟机在服务器上部署服务,在客户机上进行安全测试 声明:不涉及互联网上的资源,学习都在内网完成,一切 ...

  5. json虽然简单,但这些细节你未必知道

    基本介绍 JSON的全称是JavaScript Object Notation,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式,本来是JavaScript的子集,但现在已独立存在于各 ...

  6. [nginx]编译安装openresty

    前言 OpenResty是一个基于Nginx和Lua的高性能Web平台,其内部集成了大量精良的Lua库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web 应用.W ...

  7. 应用性能监控工具(pinpoint)部署

    Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控.方法执行详情查看.应用状态信息监控等功能.pinpoint使用HBASE储存数据. 下面介绍pinpoint部署及应用. 1.  安装 ...

  8. 后缀数组C++详解

    后缀定义 "后缀i"代表以第i个字符开头的后缀,存储是用i代表字符串s的后缀s[i...n] 后缀数组是什么? 后缀数组(Suffix Array)主要关系到两个数组:sa 和 r ...

  9. TRL 正式推出,来训练你的首个 RLHF 模型吧!

    我们正式向大家介绍 TRL--Transformer Reinforcement Learning.这是一个超全面的全栈库,包含了一整套工具用于使用强化学习 (Reinforcement Learni ...

  10. 调研capacitor兼容openharmony平台可行性

    团队可能需要对开源的 capacitor 跨平台框架进行扩展,以生产支持 OpenHarmony 平台的应用,在此调研可行性.实现路径和预期工作量. 可行性分析 在验证 capacitor 是否可以将 ...