AT_joisc2012_building2 ビルの飾り付け 2

题目描述

### 题目简述 给定一棵含有 $N$ 个节点的树。每个节点都有点权,点 $i$ 的点权为 $H_i$。 请找到一条树链,在将一头定为起点,一头定为终点后,起点到终点的路径中的所有点的点权所形成的数列的最长上升子序列最长。

输入格式

第一行输入一个整数,树的节点数 $N$。 接下来 $N$ 行输入各个点的点权,这 $N$ 行中的第 $i$ 行会输入一个整数,表示点 $i$ 的点权 $H_i$。 最后 $N-1$ 行输入树的每一条边。这 $N-1$ 行中的第 $i$ 行会输入以空格隔开的两个整数 $A_i,B_i$,表示第 $i$ 条树边连接的两个顶点的编号。

输出格式

一行一个整数,最长上升子序列的长度。 ### 输入输出样例 #### 输入 #1 ``` 7 4 2 5 3 1 8 7 1 2 2 3 3 4 4 5 3 6 6 7 ``` #### 输出 #1 ``` 4 ```

说明/提示

#### 数据规模与约定 在 AT 上,本题采取捆绑测试。共有十个 Subtask,每个 Subtask 计 $10$ 分,共 $100$ 分。 - 对于其中一个 Subtask,保证 $N\le 100$; - 对于其中三个 Subtask,保证 $N\le 2000$; - 对于全部测试点,数据保证 $2\le N\le 10^5$,$1\le H_i\le 10^9$,$1\le A_i\lt B_i\le N$。