当前位置: 首页 > news >正文

【题解-洛谷】P2935 [USACO09JAN] Best Spot S

题目:P2935 [USACO09JAN] Best Spot S

题目描述

约翰拥有 P ( 1 ≤ P ≤ 500 ) P(1 \leq P \leq 500) P(1P500) 个牧场,

贝茜特别喜欢其中的 F ( 1 ≤ F ≤ P ) F(1\leq F \leq P) F(1FP) 个。

所有的牧场由 C ( 1 < C ≤ 8000 ) C(1 < C \leq 8000) C(1<C8000) 条双向路连接,第 i i i 条路连接着 a i a_i ai, b i b_i bi 两个牧场 ( 1 ≤ a i ≤ P , 1 ≤ b i ≤ P ) (1 \leq a_i \leq P,1 \leq b_i \leq P) (1aiP,1biP),需要 T i ( 1 ≤ T i < 892 ) T_i(1 \leq T_i < 892) Ti(1Ti<892) 个单位时间来通过。

作为一只总想提升自己生活方式的奶牛,贝茜希望自己有朝一日醒来,到达所有那 F F F 个她喜欢的牧场的平均用时最小。那她前一天应该睡在哪个牧场呢?请帮助贝茜找到这个最佳牧场。

例如,考虑如下图所示的牧场布局,其中含有 * 的牧场的编号是最受欢迎的。而中括号内的数字是这条牛道的通过时间。

1*--[4]--2--[2]--3|       |[3]     [4]|       |4--[3]--5--[1]---6---[6]---7--[7]--8*|       |        |         |[3]     [2]      [1]       [3]|       |        |         |13*      9--[3]--10*--[1]--11*--[3]--12*

下表显示了牧场 4 , 5 , 6 , 7 , 9 , 10 , 11 4,5,6,7,9,10,11 4,5,6,7,9,10,11 12 12 12 的与“最佳牧场”的各个距离、平均距离和最佳牧场:

      * * * * * * 最喜欢的牧场 * * * * * *可能的         牧场    牧场    牧场    牧场    牧场    牧场         平均最佳牧场          1       8      10      11      12      13          距离
------------      --      --      --      --      --      --      -----------4              7      16       5       6       9       3      46/6 = 7.675             10      13       2       3       6       6      40/6 = 6.676             11      12       1       2       5       7      38/6 = 6.337             16       7       4       3       6      12      48/6 = 8.009             12      14       3       4       7       8      48/6 = 8.0010             12      11       0       1       4       8      36/6 = 6.00 ** 最佳的11             13      10       1       0       3       9      36/6 = 6.0012             16      13       4       3       0      12      48/6 = 8.00

由表格可见,在样例环境下,牧场 10 10 10 到所有贝茜喜欢的牧场的平均距离最小,为最佳牧场。

输入格式

第一行包含三个整数 P P P, F F F, C C C

接下来 F F F 行,每行一个整数,表示贝茜喜欢的牧场的编号。

接下来 C C C 行,每行三个整数 a i a_i ai, b i b_i bi, T i T_i Ti,表示存在一条连接 a i a_i ai b i b_i bi 的双向通路,通过时间为 T i T_i Ti

输出格式

一个整数,表示最佳的牧场编号。如果有多个最佳牧场,则输出编号最小的那一个。

输入输出样例 #1

输入 #1

13 6 15 
11 
13 
10 
12 
8 
1 
2 4 3 
7 11 3 
10 11 1 
4 13 3 
9 10 3 
2 3 2 
3 5 4 
5 9 2 
6 7 6 
5 6 1 
1 2 4 
4 5 3 
11 12 3 
6 10 1 
7 8 7

输出 #1

10

说明/提示

翻译来自 AASDFGHJKL(1035916)。

代码

#include<iostream>using namespace std;const int MaxP = 500 + 10, INF = 1e9;int P, F, C, dist[MaxP][MaxP], fav[MaxP];void floyd(){for(int t = 1; t <= P; t ++){for(int i = 1; i <= P; i ++){for(int j = 1; j <= P; j ++){dist[i][j] = min(dist[i][j], dist[i][t] + dist[t][j]);}}}
}int main(){cin >> P >> F >> C;for(int i = 1; i <= F; i ++){cin >> fav[i];}for(int i = 1; i <= P; i ++){for(int j = 1; j <= P; j ++){if(i == j){dist[i][j] = 0;}else{dist[i][j] = INF;}}}while(C --){int a, b, w;cin >> a >> b >> w;dist[a][b] = dist[b][a] = min(dist[b][a], w);}floyd();int sum = 1e9, id = 0;for(int i = 1; i <= P; i ++){int ans = 0;for(int j = 1; j <= F; j ++){ans += dist[i][fav[j]];}if(ans < sum){sum = ans;id = i;}}cout << id;return 0;
}

结果

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 2025年5月一区SCI-状态优化算法Status-based Optimization-附Matlab免费代码
  • CVE-2017-12615源码分析与漏洞复现(Tomcat 任意文件上传)
  • 工程论文: TORL: Scaling Tool-Integrated RL
  • day28/60
  • 1005. Maximize Sum Of Array After K Negations
  • 如何用python读取大的xml文件,示例为1.9G的xml文件
  • HarmonyOS - UIObserver(无感监听)
  • Windows 安装以及配置Docker全流程 - Docker Toolbox
  • vibe coding 2025工具全景图
  • python打卡day51@浙大疏锦行
  • 如何利用测试Agent自动分析覆盖率报告与缺陷趋势
  • “十五五”时期智慧城市赋能全国一体化数据市场建设:战略路径与政策建议[ 注:本建议基于公开政策文件与行业实践研究,数据引用截至2025年6月11日。]
  • 剑指offer21——反转链表
  • 力扣上C语言编程题:最大子数组和(涉及数组)
  • Qwen3-Embedding-8B:文本嵌入界的“卷王”,多语言检索新标杆!
  • 嵌入式学习笔记 - C语言访问地址的方式,以及指针的进一步理解
  • 简单的五子棋实现简介
  • 6.11本日总结
  • typescript中的泛型
  • 字符串|数组|计算常见函数整理-竞赛专用(从比赛真题中总结的,持续更新中)
  • 建设网站能赚钱/关键词seo优化
  • 专门做娱乐场所的设计网站/百度关键词点击排名
  • php网站开发答辩问的问题/高级搜索指令
  • 江门建设企业网站/廊坊关键词优化排名
  • 做质量计量的网站有哪些/项目推广
  • 上街做网站/长沙市seo百度关键词