QOJ.ac

QOJ

実行時間制限: 2.0 s メモリ制限: 512 MB 満点: 100 ハック可能 ✓

#10820. 跳跃的猴子 II

統計

给定一棵包含 $n$ 个节点和 $n-1$ 条边的树,所有节点连通。每个节点 $i$ 都有一个权值 $a_i$。一只猴子在树上跳跃。在每次跳跃中,它可以沿着边从一个节点移动到另一个节点。如果猴子从节点 $u_1$ 出发,经过 $u_2, u_3, \dots, u_{k-1}$,最后到达 $u_k$,且所有经过的节点互不相同,我们称 $u_1, u_2, u_3, \dots, u_k$ 为一条简单路径。我们定义简单路径 $u_1, u_2, u_3, \dots, u_k$ 的 LIS(最长上升子序列)如下:

  • 满足 $1 = p_1 < p_2 < \dots < p_l \le k$ 且 $a_{u_{p_1}} < a_{u_{p_2}} < \dots < a_{u_{p_l}}$ 的最长序列 $p_1, p_2, \dots, p_l$。

猴子希望使 LIS 尽可能长。对于每个 $i \in [1, n]$,请计算如果它从节点 $i$ 出发,能够获得的最长 LIS 的长度。

输入格式

输入的第一行包含一个整数 $T$ ($1 \le T \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$ ($1 \le n \le 2 \times 10^5$),表示节点数。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$),表示每个节点的权值。 接下来的 $n-1$ 行,每行包含两个整数 $u, v$ ($1 \le u, v \le n$),表示连接节点 $u$ 和 $v$ 的边。保证给定的边构成一棵树。 保证所有测试用例的 $n$ 之和不超过 $2 \times 10^5$。

输出格式

对于每个测试用例,输出 $n$ 行,第 $i$ 行表示从节点 $i$ 出发时猴子能获得的最长 LIS 的长度。

样例

输入 1

2
5
1 2 3 4 5
1 2
1 3
2 4
2 5
5
3 2 5 4 1
1 2
2 3
3 4
4 5

输出 1

3
2
2
2
1
2
2
1
2
3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.