「MCOI-02」Glass 玻璃
题目背景
小 S 进入了一个服务器,这个服务器有一个游戏叫“树上的玻璃”。
题目描述
首先给定一棵树,每个点上有 $V_i$ 个玻璃,每条边上有权值 $W_i$。
每次操作小 S 可以选择两个节点 $u,v(u\ne v)$,从节点 $u$ 到节点 $v$ 的唯一路径上,**边和** 为路径上所有边的权值和,即 $\sum W_i$,**点和** 为路径上所有点(包括 $u,v$)的玻璃数和,即 $\sum V_i$。小 S 将可以获得 **边和** 和 **点和** 的乘积的分数,即 $\sum W_i\times\sum V_i$。
任意两次操作不能完全相同,$(u,v)$ 和 $(v,u)$ 被看作是两种操作。
但是有时候这颗树太过庞大,小 S 需要你的帮助。他需要你告诉他,经过 $N(N-1)$ 次操作后,总共能得到多少分。结果可能很大,你只需要输出答案对 $998244353$ 取模的结果。
输入输出格式
输入格式
第一行一个整数 $N$ 表示树的节点数。
第二行 $N$ 个整数,第 $i$ 个数 $V_i$ 表示节点 $i$ 的玻璃数。
接下来 $N-1$ 行,每行三个数 $x,y,z$,表示节点 $x,y$ 之间连有一条权值为 $z$ 的树边。
输出格式
一个整数,即总共能得到的分对 $998244353$ 取模。
输入输出样例
输入样例 #1
5
1 2 1 2 1
1 5 1
1 2 2
2 3 1
2 4 2
输出样例 #1
256
说明
#### 样例说明
对于样例 $1$,树的形态如下:
![](https://cdn.luogu.com.cn/upload/image_hosting/4yfdr3b6.png)
#### 数据规模与约定
**本题采用捆绑测试。**
|子任务编号 | $N$ | $V_i,W_i$ | 特殊性质 | 分值 |时限|
| :----------: | :----------: | :----------: | :----------: | :----------: | :----------: |
| 1 | $\le200$ | $\lt 2^3$ | | $3$ |$\rm 1s$|
| 2 | $\le10^3$ | $\lt2^3$ | | $6$ |$\rm 1s$|
| 3 | $\le6\times10^3$ | $\lt2^8$ | | $11$ |$\rm 1s$|
| 4 | $\le2\times 10^5$ | $\lt 2^8$ | 存在度数为 $N-1$ 的节点 | $12$ |$\rm 1s$|
| 5 | $\le2\times10^5$ | | 树的形态为一条链 | $13$ |$\rm 1s$|
| 6 | $\le2\times10^5$ | | | $21$ |$\rm 1s$|
| 7 | $\le2\times10^6$ | | | $34$ |$\rm 2s$|
对于 $100\%$ 的数据,$0\le V_i,W_i\lt2^
{16}$,$1 \le N\le2\times10^6$。
#### 说明
Minecraft OI Round 2 D
- Maker:Inf_Voltage
- Tester:tarjin