logo AlgoBeat OnlineJudge
登录 注册

#214644. 树上求值 tree

内存限制:512 MiB 时间限制:7500 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

对于两个权值序列 ,记 ,其中 ,定义

给定一颗树。有 组数据,每组数据给定树的根结点编号 ,模数 与权值序列 ,你需要对每组数据都求出答案。

对于一颗根为 的有根树,每个结点 的深度 定义为 的简单路径上的结点数量。记 为结点 最近公共祖先的编号。对于每个树上的结点 ,你需要求出 取模后的结果。

输入格式

本题包含多组测试数据。

输入的第一行包含一个整数

接下来 行,每行两个整数 表示树上一条连接结点 的边。

接下来一行一个整数 ,表示数据的组数。

接下来共 行。对于每组数据输入三行:

  • 第一行包含两个整数
  • 第二行包含 个整数
  • 第三行包含 个整数

输出格式

共输出 行。对于每组数据,记 表示结点 的答案,你只需要输出一行包含一个整数,表示 的结果。

样例

样例输入 1

5
1 2
1 3
2 4
2 5
3
1 100
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 100
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
4 998244353
3 8 6 9 8 1 3 9 6 3 6 9 5 4 5 3 1 6 1 2 3
8 7 6 6 8 5 1 8 9 2 6 8 7 3 4 7 5 7 9 9 2

样例输出 1

13
47
101841048

数据范围与提示

【样例 1 解释】

对于第一组数据,所有点的答案都是 。于是

对于第二组数据,

【样例 2】

见附件的 tree/tree2.in 与 tree/tree2.ans。

该样例满足测试点 的约束条件。

【样例 3】

见附件的 tree/tree3.in 与 tree/tree3.ans。

该样例满足测试点 的约束条件。

【样例 4】

见附件的 tree/tree4.in 与 tree/tree4.ans。

该样例满足测试点 的约束条件。

【样例 5】

见附件的 tree/tree5.in 与 tree/tree5.ans。

该样例满足测试点 的约束条件。

【数据范围】

对于所有测试数据,保证

::cute-table{tuack}

测试点编号 特殊性质
^ ^
^
^ AB
^ B
C
D
^
^
  • 特殊性质 A:保证对于
  • 特殊性质 B:保证存在一个 的排列 满足
  • 特殊性质 C:保证存在一个整数 满足
  • 特殊性质 D:保证对于