#abc165f. [abc165_f]LIS on Tree

[abc165_f]LIS on Tree

题目描述

我们有一棵具有NN个顶点的树,第ii条边连接了顶点uiu_i和顶点viv_i。顶点ii上有一个整数aia_i。对于从11NN的每个整数kk,解决以下问题:

  • 我们将通过按照它们出现的顺序将写在顶点上的整数沿着从顶点11到顶点kk的最短路径排列成一个序列。找到该序列的最长递增子序列的长度。

这里,序列AA的最长递增子序列是满足1i1<i2<...<iML1 \leq i_1 < i_2 < ... < i_M \leq LAi1<Ai2<...<AiMA_{i_1} < A_{i_2} < ... < A_{i_M}的子序列Ai1,Ai2,...,AiMA_{i_1} , A_{i_2} , ... , A_{i_M}MM的最大可能值。

约束条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1ai1091 \leq a_i \leq 10^9
  • 1ui,viN1 \leq u_i , v_i \leq N
  • uiviu_i \neq v_i
  • 给定的图是一棵树。
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN a1a_1 a2a_2 ...... aNa_N u1u_1 v1v_1 u2u_2 v2v_2 :: uN1u_{N-1} vN1v_{N-1}

输出

打印出NN行。第kk行,打印出从顶点11到顶点kk的最短路径得到的序列的最长递增子序列的长度。

示例输入1

10
1 2 5 3 4 6 7 3 2 4
1 2
2 3
3 4
4 5
3 6
6 7
1 8
8 9
9 10

示例输出1

1
2
3
3
4
4
5
2
2
3

例如,从顶点11到顶点55的最短路径得到的序列AA1,2,5,3,41,2,5,3,4。其最长递增子序列是A1,A2,A4,A5A_1, A_2, A_4, A_5,长度为44