#3037. LIS on Tree

0

LIS on Tree

LIS on Tree

题目描述

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

我们沿着从顶点 11 到顶点 kk 的最短路径,把路径上顶点上的整数按出现的顺序排列成一个序列。求该序列的最长严格递增子序列的长度。

这里,长度为 LL 的序列 AA 的最长严格递增子序列是下标为 Ai1,Ai2,...,AiMA_{i_1} , A_{i_2} , ... , A_{i_M} 且使得 MM 尽可能大的序列,满足 1≤i1<i2<...<iM≤L1 \leq i_1 < i_2 < ... < i_M \leq L 且 Ai1<Ai2<...<AiMA_{i_1} < A_{i_2} < ... < A_{i_M}。

输入格式

输入按照下列格式从标准输入给出: NN a1a_1 a2a_2 ...... aNa_N u1u_1 v1v_1 u2u_2 v2v_2 : uN−1u_{N-1} vN−1v_{N-1}

输出格式

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

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

提示

2≤N≤2×1052 \leq N \leq 2 \times 10^5 1≤ai≤1091 \leq a_i \leq 10^9 1≤ui,vi≤N1 \leq u_i , v_i \leq N ui≠viu_i \neq v_i 给定的图是一棵树。 输入中的所有数值都是整数。例如,从顶点 11 到顶点 55 的最短路径得到的序列 AA 为 1,2,5,3,41,2,5,3,4。它的最长严格递增子序列是 A1,A2,A4,A5A_1, A_2, A_4, A_5,长度为 44.

标签: AtCoder|abc165F

来源

AtCoder|abc165F