#ABC165F. 树上的 LIS

树上的 LIS

树上的 LIS

题目描述

有一棵 NN 个顶点的树,第 ii 条边连接顶点 uiu_i 和顶点 viv_i。 另外,顶点 ii 上写着整数 aia_i。 对 11 以上 NN 以下的所有整数 kk,解决下面的问题:

  • 将顶点 11 到顶点 kk 的最短路径上的顶点所写的整数按距顶点 11 由近到远的顺序排列成的数列,其最长上升子序列的长度是多少?

其中,长度为 LL 的数列 AA 的最长上升子序列,是指在满足 1i1<i2<...<iML1 \leq i_1 \lt i_2 \lt ... \lt i_M \leq LAi1<Ai2<...<AiMA_{i_1} \lt A_{i_2} \lt ... \lt A_{i_M} 的子序列 Ai1,Ai2,...,AiMA_{i_1}, A_{i_2}, ... , A_{i_M}MM 最大的一个。

输入格式

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

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 的最短路径上的顶点所写的整数按距顶点 11 由近到远的顺序排列成的数列的最长上升子序列的长度。

样例

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
2
3
3
4
4
5
2
2
3

例如,将顶点 11 到顶点 55 的最短路径上的顶点所写的整数按距顶点 11 由近到远的顺序排列得到的数列 AA1,2,5,3,41,2,5,3,4。这个数列的最长上升子序列是 A1A_1, A2A_2, A4A_4, A5A_5,长度为 44

数据范围

  • 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
  • 给出的图是一棵树。
  • 输入均为整数。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
1937
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签