单点时限: 4.0 sec
内存限制: 1024 MB
Cuber QQ 有一棵 n 个结点的有根树,树根是 1 号节点,树上每个节点有一个点权 ai。
对于树上的两个节点 u,v(u≠v), 若他们为祖先后代关系,则会产生一个新的价值,而且价值是 value(u,v)=av⊕au 。
现在 Cuber QQ 想知道树上前 k 大的价值。
输入数据第一行包含两个整数 n,k (2≤n≤5×105,1≤k≤min(∑vdepv−1,5×105)) 。
接下来 n−1 行,每行两个整数 u,v,表示树上的一条边。
接下来 n 行,第 i 行代表 i 号点的权值 ai (1≤ai≤231−1)。
输出包含 k 行,表示前 k 大的异或值,从大到小依次输出。
3 2 1 2 1 3 1 2 4
5 3