Galgame

PDF 视图

提交程序

分数: 1
时间限制: 4.0s
内存限制: 512M

作者:
题目类型

题目描述

A 正在玩一款剧情游戏,整个剧情可以看作一棵有根树,根节点固定为 1,表示游戏开始,每个叶子节点都可以看作一个结局。

A 在一些节点进行了存档,并且保证根节点一定是存档点。

A 从根节点出发,想要游玩所有结局至少一次,并且所有存档点也都需要至少经过一次。每当 A 完成一个结局后,如果还有尚未游玩的目标点(结局或存档点),A 可以选择一个尚未游玩的结局,并从某个能够到达该结局的存档点重新开始,继续游玩到该结局。当所有目标点都被游玩后,过程结束。

重复浏览同一段剧情会让 A 感到无聊。因此,每条边都有一个无聊值,每当 A 再次经过一条之前已经经过的边时,这条边都会再次贡献它的无聊值。

现在给出所有存档点,请你在 A 总是采取最优策略的情况下,求最小的总无聊值。

补充:无法从子结点走到根结点,必须经过存档点才能回档。

输入格式

第一行包含一个整数 T,本题中固定为 5

对于每组测试数据:

第一行包含两个整数 nm,分别表示树的节点数和存档点个数。根节点固定为 1

数据范围满足 \(1 \le n, m \le 3e5\)。

接下来 n - 1 行,每行包含三个整数 uvw,表示节点 u 和节点 v 之间有一条边,无聊值为 w,其中 \(1 \le w \le 10^9\)。

最后一行包含 m 个整数,表示所有存档点,其中一定包含根节点 1。保证存档点互不相同。

输出格式

对于每组测试数据,输出一行一个整数,表示最小总无聊值。

样例输入

5
1 1
1
3 1
1 2 5
2 3 7
1
5 1
1 2 3
1 3 4
3 4 6
3 5 8
1
5 2
1 2 3
1 3 4
3 4 6
3 5 8
1 3
7 2
1 2 2
2 3 5
2 4 7
1 5 3
5 6 11
5 7 13
1 2

样例输出

0
0
4
0
3

评论

目前没有评论。