神奇的迷宫
题号:NC212231
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

有一个神奇的迷宫,一共有  个房间,还有  条通道,长度均为 。每条通道连接两个不同的房间,这个迷宫构成了个树形结构。
Froggy 和 鏡音リン 要去挑战迷宫。刚开始,他们两人依次传送到到迷宫的某两个房间(可能相同)。对于任意一个人,传送到房间  的概率是 p_i 。假设两人被传送到的房间之间的最短距离是 ,那么他们挑战这个迷宫的困难值是 w_L
请你告诉 Froggy,他们挑战这个迷宫的困难值的期望是多少。

输入描述:

第一行输入一个正整数 ,表示房间个数。
第二行输入  个整数 。令 ,则 
第三行输入  个整数 
接下来  行,每行输入两个整数 ,表示第  条通道连接房间  和房间 
保证输入的图是一棵树。

输出描述:

显然,最后答案一定可以表示成  的形式。
请输出这个分数对  取模后的结果。
示例1

输入

复制
3
1 2 3
3 2 1
1 2
2 3

输出

复制
887328316

说明

距离  的概率为分别 ,所以最后答案是 ,在模  的意义下的值为 
示例2

输入

复制
6
1 1 4 5 1 4
1 9 1 9 8 10
1 2
2 3
2 4
1 5
1 6

输出

复制
249561093
示例3

输入

复制
10
0 76507 29535 6993 123413 149357 6751 0 21623 0
69396374 78945652 40298263 12836349 53787802 13446291 98276886 60256268 46259091 49311395
2 1
3 2
4 2
5 3
6 4
7 1
8 3
9 1
10 8

输出

复制
905013619

备注: