在一座未来城市中,一个高度自动化的无人机物流网络负责着全城的包裹配送。 这个网络由 n 个配送站 S_1, S_2, ..., S_n 组成。 无人机可以在这些配送站之间沿着预设的空中走廊进行飞行。 每条空中走廊连接两个配送站,并且是双向通行的。 由于距离、风阻等因素,无人机飞过每条走廊都需要消耗一定的能量,记为 E_uv 。 这个能耗是固定的,且双向飞行的能耗相同 ( E_uv = E_vu )。 当一个配送任务下达时,系统需要从起始站 S_start 规划出一条到达目的站 S_end 的、总能耗最低的飞行路径。 无人机的导航系统遵循最短路径原则。对于一个从 S_start 到 S_end 的任务,系统会计算出一条或多条总能耗最低的路径。 无人机从起始站出发的第一站被称为下一跳。由于可能存在多条能耗并列最低的路径,因此下一跳也可能不止一个。 您的任务是:给定整个物流网络的布局和各条走廊的能耗,并指定起始站和目的站,计算出: 1. 完成该配送任务所需的最低总能耗。 2. 无人机从起始站出发的所有可能的下一跳站点的集合。
第一行包含两个整数 N 和 K ,分别代表配送站的总数和空中走廊的数量。 1 ≤ N ≤ 1000 1 < K ≤ (N × (N-1)/2) 接下来的 K 行描述了空中走廊的信息。每行包含三个正整数 u, v, e ,分别代表这条走廊连接的两个配送站的编号 S_u, S_v 和飞行所需的能耗 E_uv 。 1 ≤ E_uv ≤ 100 站点编号 u, v 的范围在 [1, N] 内。 最后一行包含两个正整数 S_start 和 S_end ,代表任务的起始站和目的站。
输出共两行: 第一行为一个整数,表示从 S_start 到 S_end 的最低总能耗。 第二行为一个或多个正整数,代表所有可能的下一跳站点的编号。请将这些编号按升序排列,并用单个空格分隔。 特殊情况: 1. 如果目的站 S_end 无法从起始站 S_start 到达,则最低能耗输出 `-1`,下一跳集合也输出 `-1`。 2. 如果起始站与目的站相同 ( S_start = S_end ),则最低能耗为 `0`,下一跳集合输出 `-1`。
19 71 7 9 98 9 14 98 6 11 27 2 10 8 6 8 2 10 11 68 16 17 34 2 13 29 13 18 70 5 7 46 1 5 76 5 12 96 5 17 18 11 16 91 3 18 45 8 10 76 7 13 20 2 9 21 8 12 96 7 10 37 6 16 45 15 19 32 4 11 15 2 6 46 7 11 32 6 13 38 9 18 44 8 14 42 18 19 80 4 7 75 6 9 51 9 12 64 10 13 26 1 13 10 10 15 69 10 19 69 2 19 16 11 12 24 17 19 15 13 17 48 13 16 84 3 11 31 1 9 10 15 16 49 3 8 69 7 8 31 4 15 96 5 8 45 9 10 12 9 16 78 10 17 20 5 18 5 8 17 39 5 6 48 4 16 40 14 16 15 13 15 65 10 16 43 12 18 74 1 14 83 1 10 18 2 5 55 12 16 41 4 18 13 5 16 59 9 13 14 4 8 2 4 12 45 14 18 97 12 17 17 4 13 40 16 18
53 4
考点:广度优先搜索(BFS)
数据规模 N ≤ 1e3 | 限制 3 秒 / 256MB | 标准输入输出
参考方向:广度优先搜索(BFS)
按层扩散搜索,无权图上第一次到达即最短路。
思路框架(广度优先搜索(BFS) 通法 · 非本题专属)
实现要点:标记访问必须在入队时做,不能在出队时做,否则会重复入队甚至超时。
复杂度:时间 O(V+E) | 空间 O(V)
该范式的通法易错点
对照本题
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1
19 71 / 7 9 98 / 9 14 98 / 6 11 27 / 2 10 8 / 6 8 2 / 10 11 68 / 16 17 34 / 2 13 29 / 13 18 70 / 5 7 46 / 1 5 76 / 5 12 96 / 5 17 18 / 11 1653 / 4解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-华为-10月15号开发岗。