#P11195. [COTS 2021] 疫苗接种 Cijepise

    ID: 12422 远端评测题 5000ms 1000MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>2021O2优化COCI(克罗地亚)

[COTS 2021] 疫苗接种 Cijepise

背景

译自 Izborne Pripreme 2021 (Croatian IOI/CEOI Team Selection) D2T1。5s,1G\texttt{5s,1G}。

题目描述

给定以 11 为根的有 NN 个节点的有根树,记 ii 号点的点权为 aia_i。

定义一次操作为:

  • 初始化 uu 为树根。
    1. 设 uu 儿子中点权最大的点为 vv(若有多个,则等概率随机选取一个)。令 au←ava_u\gets a_v,av←0a_v\gets 0。
    2. 若 vv 为叶子,则删去 vv,终止这个过程。否则令 u←vu\gets v,回到 1。

定义 f(v)f(v) 为:在最坏情况下,欲让 ava_v 尽可能快地(也就是使用尽量少的操作次数)出现在树根上,至少需要更改多少个点的点权(可以不更改)。

换句话说,我们定义在最坏情况下,vv 需要操作 kk 次到达树根。显然树的形态固定时,不同的点权会使得 kk 取不同的值,且 kk 存在一个下界。你需要修改若干个点的点权,使得 kk 取到下界,并最小化修改的数量。

点权可以被改为 [0,2×109][0,2\times 10^9] 内的任意整数。

QQ 次询问给定 vv,回答 f(v)f(v)。

输入格式

第一行,一个正整数 NN。

第二行,NN 个正整数 aia_i。

接下来 (N−1)(N-1) 行,每行两个正整数 u,vu,v,描述一条树边 (u,v)(u,v)。

接下来一行,一个正整数 QQ。

接下来 QQ 行,每行一个正整数 vv,表示询问 f(v)f(v)。

输出格式

输出 QQ 行,表示每个询问的答案。

3
1 2 3
1 2
1 3
3
1
2
3
0
1
0
7
45 13 19 3 81 27 77
1 2
1 3
1 4
3 5
3 6
4 7
3
5
6
7
0
1
1
8
23 4 9 7 11 4 1 18
2 1
3 2
4 2
5 2
6 3
7 4
8 1
3
2
3
7
1
2
3

提示

对于 100%100\% 的数据,保证 1≤Q≤N≤1×1051\le Q\le N\le 1\times 10^5,1≤ai≤1091\le a_i\le 10^9,1≤v≤N1\le v\le N,给出的是一棵树。

子任务编号 N≤N\le 特殊性质 得分
1 1 12 12 无 10 10
2 2 300 300 11 11
3 3 3 000 3\,000 有 12 12
4 4 无 13 13
5 5 100 000 100\,000 有 20 20
6 6 无 34 34

特殊性质:Q≤1Q\le 1。