#P5619. [DBOI2019] 持矢

[DBOI2019] 持矢

背景

:::epigraph[doby] 吾射不亦精乎? :::

题目描述

doby 是一个弓箭手,他很喜欢拿箭。

这天,他来到一个射箭场,发现射箭场老板放好了 nn 个靶子(从 1n1\sim n 标号),中间画了 n1n-1 条线,使得这 nn 格靶子和 n1n-1 条线组成了一个根为 11 的树。每个靶子上都有分数。

他为了历练自己,选择了一个点(称为父点),然后对它子树(包括它)的每个靶子射一次,每个靶子射中概率为 50%50\%。每次射完一个子树,他获得的总分为射中的所有靶子的分数之

现在他想知道,选择不同的点作为父点,他期望总分为多少?由于总分可能很大,你需要把结果对 1926081719260817(质数)取模。

输入格式

输入两个正整数,靶子总数 nn 和询问次数 mm

接下来一行,nn 个正整数,表示编号为 1n1\sim n 的靶子的分数。

接下来 n1n-1 行,每行两个数 u,vu,v,描述树的一条无向边。

接下来 mm 行,每行一个正整数 x(1xn)x(1\leq x\leq n),表示询问以靶子 xx 为父节点时,doby 期望获得的总分。

输出格式

输出一行,一个正整数 out\operatorname{out}

为了减少输出,定义 out\operatorname{out} 为对于每组询问,期望获得的总分之和。由于是期望,需要你在计算 ab\frac{a}{b} 时,将其改为 a×b1mod19260817a\times b^{-1} \bmod 19260817。你需要把输出 out\operatorname{out} 也对 1926081719260817 取模。。

2 1
1 2
2 1
1
14445614
5 3
4 4 3 4 5
1 2
3 2
2 4
5 4
3
2
1
16251447

提示

注意:由于模数较大,请注意求逆元时中间结果的溢出。

如果你不需要卡常,使用快速幂求逆元就够用了。

【样例 #1 说明】

答案为54\frac{5}{4},可能的总分有001122

【样例 #2 说明】

答案分别为 9630410963041010834247108342471504760715047607,即 32\frac{3}{2}59916\frac{599}{16}299932\frac{2999}{32}

Subtask #1(1010 分):

1n,m101\leq n,m\leq 10

Subtask #2(4040 分):

1n,m1051\leq n,m\leq 10^5

Subtask #3(5050 分):

1n,m2×1061\leq n,m\leq 2 \times 10^6

所有测试点的时间限制统一为 1.5s,内存限制统一为 125M。

题目提供者:1jia1