2085: [蓝桥杯2023初赛] 景区导游

内存限制:256 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:517 通过:145

题目描述

某景区一共有 N 个景点,编号 1 到 N。
景点之间共有 N − 1 条双向的摆渡车线路相连,形成一棵树状结构。
在景点之间往返只能通过这些摆渡车进行,需要花费一定的时间。
小明是这个景区的资深导游,他每天都要按固定顺序带客人游览其中 K 个景点:A1, A2, ... , AK 今天由于时间原因,小明决定跳过其中一个景点,只带游客按顺序游览其中 K − 1 个景点。
具体来说,如果小明选择跳过 Ai,那么他会按顺序带游客游览A1, A2, ... , Ai−1, Ai+1, ... , AK; (1 ≤ i ≤ K)。
请你对任意一个 Ai,计算如果跳过这个景点,小明需要花费多少时间在景点之间的摆渡车上?

输入格式

第一行包含 2 个整数 N 和 K。
以下 N − 1 行,每行包含 3 个整数u, v 和 t,代表景点 u 和 v 之间有摆渡车线路,花费 t 个单位时间。
最后一行包含 K 个整数 A1, A2, ... , AK 代表原定游览线路。
对于20% 的数据,2 ≤ K ≤ N ≤ 100。
对于40% 的数据,2 ≤ K ≤ N ≤ 10000。
对于100% 的数据,2 ≤ K ≤ N ≤ 100000,1 ≤ u, v, Ai ≤ N,1 ≤ t ≤ 100000。保证 Ai 两两不同。

输出格式

输出 K 个整数,其中第 i 个代表跳过 Ai 之后,花费在摆渡车上的时间。

输入样例 复制

6 4
1 2 1
1 3 1
3 4 2
3 5 2
4 6 3
2 6 5 1

输出样例 复制

10 7 13 14

数据范围与提示

原路线是2 → 6 → 5 → 1。
当跳过2 时,路线是6 → 5 → 1,其中6 → 5 花费时间3 + 2 + 2 = 7,5 → 1 花费时间2 + 1 = 3,总时间花费10。
当跳过6 时,路线是2 → 5 → 1,其中2 → 5 花费时间1 + 1 + 2 = 4,5 → 1 花费时间2 + 1 = 3,总时间花费7。
当跳过5 时,路线是2 → 6 → 1,其中2 → 6 花费时间1 + 1 + 2 + 3 = 7,6 → 1 花费时间3 + 2 + 1 = 6,总时间花费13。
当跳过1 时,路线时2 → 6 → 5,其中2 → 6 花费时间1 + 1 + 2 + 3 = 7,6 → 5 花费时间3 + 2 + 2 = 7,总时间花费14。