zxa and leaf

Accepts: 25
Submissions: 249
Time Limit: 5000/2500 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
zxa有一棵含有$n$个节点的无根树,包含$(n-1)$条无向边,点从$1$到$n$编号,定义每个点的度数为与这个点相连的边的数量,度数为$1$的节点被称作这棵树的叶子节点。

zxa想给每个节点设置它的好看度,好看度必须为正整数。他的无根树有$m(1\leq m\leq n)$个叶子节点,其中的$k(1\leq k\leq m)$个叶子节点的好看度已经确定,zxa只需要设置其他节点的好看度。

zxa很好奇,如果令每条边的难看度是这条边所连接的两个节点的好看度差值的绝对值,整棵树的难看度是所有边的难看度中的最大值,那么这棵树的难看度最小是多少,你能帮助他吗?
输入描述
第一行有一个正整数$T$,表示有$T$组数据。

对于每组数据:

第一行有两个正整数$n$和$k$,表示这棵树有$n$个节点,其中$k$个叶子节点的好看度已经确定。

接下来$(n-1)$行,每行有两个互异的正整数$u$和$v$,表示节点$u$和节点$v$之间有一条无向边。

接下来$k$行,每行有两个正整数$u$和$w$,表示节点$u$是叶子节点,而且它的好看度是$w$。

每一行相邻数字之间只有一个空格。

保证输入的边构成一棵树。

$1\leq T\leq 10,2\leq n\leq 5\cdot10^4,1\leq k\leq n,1\leq u,v\leq n,1\leq w\leq 10^9$
输出描述
对于每组数据,输出一行,包含一个非负整数,表示这棵树的难看度最小值。
输入样例
2
3 2
1 2
1 3
2 4
3 9
6 2
1 2
1 3
1 4
2 5
2 6
3 6
5 9
输出样例
3
1
Hint
如果你需要更大的栈空间,请使用#pragma comment(linker, "/STACK:102400000,102400000")并且选择使用C++提交你的代码。