说明
请确定每只蜻蜓的飞行过程中捕食到的不同种类昆虫的数量。
输入格式
- 第一行包含两个整数 n 和 d,分别表示池塘数量和蜻蜓数量。
- 第二行包含 n 个整数 b1,b2,…,bn,表示每个池塘的昆虫数量。
- 第三行包含 n 个整数 s1,s2,…,sn,表示每个池塘昆虫的种类。
- 第四行包含 d 个整数 h1,h2,…,hd,表示每只蜻蜓的目标池塘。
- 接下来 n−1 行,每行包含两个整数 uj 和 vj,表示一条连接池塘 uj 和 vj 的小径。
输出格式
输出一行包含 d 个整数,第 k 个整数表示第 k 只蜻蜓捕食到的不同种类昆虫数量。
5 6
4 1 0 3 1
1 3 2 2 1
2 5 4 3 4 2
5 2
2 1
1 4
1 3
2 1 2 1 1 0
7 4
0 2 4 4 0 1 3
6 1 6 2 2 2 1
7 5 2 4
4 1
4 5
6 2
1 6
1 3
6 7
2 1 1 1
提示
【样例解释】
对于样例 1,第一只蜻蜓飞向池塘 2,捕食 1 只种类 1 的昆虫和 1 只种类 2 的昆虫。第二只蜻蜓飞向池塘 5,捕食种类 1 的昆虫,总共捕食 1 个种类。
对于样例 2,每只蜻蜓飞行后捕食到的不同种类分别是 2,1,1,1。
【数据范围】
- 2≤n≤2×105
- 1≤d≤2×106
- 1≤si≤n,0≤bi≤d,1≤uj,vj<n
| 子任务编号 |
分值 |
额外限制条件 |
| 1 |
10 |
n,d≤1000 |
| 2 |
bi=d |
| 3 |
12 |
bi≤10 |
| 4 |
uj=j, vj=j+1 |
| 5 |
37 |
si=i |
| 6 |
16 |
d≤2×105 |
| 7 |
3 |
无额外限制 |