谷物消耗
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
谷物消耗
题目描述
Y 同学是三金国的国王。王国中有 座城市,由 条双向道路连接,形成了一棵树的结构。城市从 到 编号。国王 Y 同学的城堡建在 号城市。
Y 同学有 位王子,他们即将成年。按照王国的传统,每位成年的王子都需要一座自己的城堡。因此,Y 同学计划在 个不同的城市为王子们建造新的城堡。
国王和王子们需要保持密切的联系,以处理王国的各类事务。为此,每天每座城堡都会向所有其他城堡各派遣一名信使传递信息。也就是说,对于任意两座不同的城堡 A 和 B,都会有一名信使从 A 前往 B,同时另一名信使从 B 前往 A。
信使的坐骑在每次出发前都需要补充能量。具体来说,每走 公里的路,坐骑需要消耗 单位的谷物。
随着王子们的城堡一座接一座地建成,王国每日消耗的谷物总量也在不断变化。最初,王国中只有位于 号城市的国王城堡。接着, 位王子将按给定的顺序,依次在指定的城市建造他们的城堡。
请你编写一个程序,计算出每当一座新的王子城堡建成后,整个王国用于信使交通的每日谷物总消耗量。
输入格式
第一行包含两个整数 ,分别表示王国的城市数量和王子的数量。
接下来 行,每行包含三个整数 ,表示城市 和城市 之间有一条长度为 公里的双向道路。
接下来 行,每行包含一个整数 ,表示下一位王子将要在城市 建造城堡。保证所有 各不相同,且不为 。
输出格式
输出 行。第 行()输出一个整数,表示第 位王子的城堡建成后,王国每日的谷物总消耗量。
样例
样例输入
5 3
1 4 3
3 1 6
1 2 5
4 5 1
5
3
2
样例输出
8
40
90
提示
样例解释
初始时,只有国王的城堡在城市 。
-
第一位王子在城市 建造城堡。
- 此时城堡集合为 。
- 需要计算
1 -> 5
和5 -> 1
的路程。 - 城市 和 之间的最短距离为 $\text{dist}(1, 5) = \text{dist}(1, 4) + \text{dist}(4, 5) = 3 + 1 = 4$。
- 总消耗为 $\text{dist}(1, 5) + \text{dist}(5, 1) = 2 \times 4 = 8$。
-
第二位王子在城市 建造城堡。
- 此时城堡集合为 。
- 需要计算所有有序点对 的路程。
- 总消耗为 $2 \times (\text{dist}(1, 5) + \text{dist}(1, 3) + \text{dist}(5, 3))$。
- 。
- 。
- $\text{dist}(5, 3) = \text{dist}(5, 4) + \text{dist}(4, 1) + \text{dist}(1, 3) = 1 + 3 + 6 = 10$。
- 总消耗为 。
-
第三位王子在城市 建造城堡。
- 此时城堡集合为 。
- 总消耗为 $2 \times (\text{dist}(1,5) + \text{dist}(1,3) + \text{dist}(1,2) + \text{dist}(5,3) + \text{dist}(5,2) + \text{dist}(3,2))$。
- , , , 。
- $\text{dist}(5, 2) = \text{dist}(5, 4) + \text{dist}(4, 1) + \text{dist}(1, 2) = 1 + 3 + 5 = 9$。
- $\text{dist}(3, 2) = \text{dist}(3, 1) + \text{dist}(1, 2) = 6 + 5 = 11$。
- 总消耗为 $2 \times (4 + 6 + 5 + 10 + 9 + 11) = 2 \times 45 = 90$。
数据范围与约定
- 对于所有测试数据,保证 。
- 对于描述道路的 行,保证 ,,。
- 对于描述新建城堡的 行,保证 。
- 保证给定的 条道路构成一棵树。
- 保证给定的 个建造城堡的城市 互不相同。
数据范围
范围 | 特殊约定 | 分值 |
---|---|---|
1 | 15 | |
2 | 城市构成一条链,即对所有 ,存在一条连接城市 和 的道路。王子们按顺序在城市 建造城堡。 | 35 |
3 | 无额外约定 | 50 |