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

    ID: 10569 Type: RemoteJudge 5000ms 1000MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2021O2优化CEOI(中欧)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(若有多个,则等概率随机选取一个)。令 auava_u\gets a_vav0a_v\gets 0
    2. vv 为叶子,则删去 vv,终止这个过程。否则令 uvu\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

接下来 (N1)(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\% 的数据,保证 1QN1×1051\le Q\le N\le 1\times 10^51ai1091\le a_i\le 10^91vN1\le v\le N,给出的是一棵树。

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

特殊性质:Q1Q\le 1