开始: 2024-02-23 17:45:00

0223算法入门(1)期末测试

结束: 2024-02-23 20:25:00
当前  2025-01-24 17:50:36  类型: IOI  状态: 已经结束 

P5. 友好匹配
描述

小明在公司里面上班,除了董事长外,每个人都有自己的上级,我们设定1号员工就是董事长。

公司选人完成一个任务,需要看选择的人员协调性是多少,每个员工都有自己的适配值,只要两个人的是配置值之差为3的倍数,那么我们就认为他们相配,组队的适配值就会增加1。

公司现在想要找到一组人出去完成任务,例如我们选8 9,他们需要通过5才能进行联系,这样子就相当于选了5 8 9三人去完成任务,同样的,如果选4 9,我们就会配上2 5 进行协调,因为只有加入2和5,才能让4 9进行工作交接和传递!

16853564537544.png

为了防止所有人都要经过董事长进行协调,我们约定只能在最直接管理的部门里面进行查找。例如上图中,6 7就是在3的部门里面,我们不能说他在1的部门里面,如果查询的是5和6,我们就可以说他们是在1的部门里面。

红色数字就是它的权值,那么7和10就是部门里面最适配的一对

同样的4和1也是。

输入

第一行是一个整数,表示公司员工数量 n。  

接下来 n - 1 行,每行两个整数 u, v,表示u是v的上级。  

接下来一行,一共n个数字,表示每个节点的适配值!

接下来一个数字p,表示p个查询

接下来p行,每行两个数字x和y,表示x和y所在线路上的适配值。


输出

p行,每行一个匹配值,表示在x到y的最短线路上,适配值为多少!

样例

输入

5
1 2
2 3
1 4
2 5
3 3 7 6 4
2
3 4
3 5

输出

3
1
提示

40%数据    1 \leq n \leq 1000   , 1 \leq q \leq 1000

30%数据    1 \leq n \leq 10000   , 1 \leq q \leq 10000

30%数据    1 \leq n \leq 100000   , 1 \leq q \leq 100000

每个节点的匹配值 1 \leq a_i \leq 100000

数据配图如下:

168519745819.png

样例解释:

3 4,由于选了3 4,那么我们会选择1 2 3 4这个四个人,1 2,1 4,2 4,可以有三种选择,所以适配值是3

3 5,由于选了3 5,那么我们会选择2 3 5这三个人,3 5可以进行配对,只有一种选择,所以适配值是1

提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交