#1429. 一道树论

一道树论

一道树论

题目描述

WW现在有一个点集SS和一棵树,树上有nn个点和n1n-1条有边权的无向边。

但是小WW很好奇,如果他想要断掉一些边,使得点集SS内的点两两不连通,怎么做才能使要断掉的边的边权和最小呢?

他把这个问题丢给了你,想让你来回答,你只用告诉他要断的边的边权和是多少即可。

但他又觉得太简单了,所以他会一个个把11~nn这些点以某个顺序插入SS中(初始SS为空),你要在每次插入后都回答他这个问题。

输入格式

第一行一个数,表示nn

接下来n1n-1行,第ii行三个数xix_{i}yiy_{i}ziz_{i}表示第ii条边连接点xix_{i}yiy_{i},边权为ziz_{i}

再接下来nn行,第ii行一个数aia_{i},表示第ii次要往SS中插入点aia_{i}

输出格式

nn行,第ii行表示在第ii次插入之后的答案。

数据范围与提示

  • 对于20%20\%的数据,n18n \leq 18
  • 对于40%40\%的数据,n103n \leq 10^{3}
  • 对于70%70\%的数据,n105n \leq 10^{5}
  • 对于100%100\%的数据,1n5×1051 \leq n \leq 5 \times 10^{5}1zi1091 \leq z_{i} \leq 10^{9},保证aa11~nn的一个排列。

样例

5
3 1 8
2 3 8
2 4 8
2 5 7
3
4
1
5
2
0
8
16
23
31

说明

  • 第一次:S={3}S=\{3\},不用断边;
  • 第二次:S={3,4}S=\{3,4\},可以断掉边集{3}\{3\}{2}\{2\}
  • 第三次:S={3,4,1}S=\{3,4,1\},可以断掉边集{1,3}\{1,3\}{1,2}\{1,2\}
  • 第四次:S={3,4,1,5}S=\{3,4,1,5\},可以断掉边集{1,3,4}\{1,3,4\}{1,2,4}\{1,2,4\}
  • 第五次:S={3,4,1,5,2}S=\{3,4,1,5,2\},可以断掉边集{1,2,3,4}\{1,2,3,4\}
6
1 2 9
3 4 1
1 3 2
6 1 1
5 6 7
3
1
4
6
5
2
0
2
3
4
11
20
见tree3.in
见tree3.ans