Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:6 s 空间限制:512 MB

#4314. 花朵

统计

题目描述

小 F 的生日还有一个多月,大 F 早早地准备起了礼物。

“你想要什么礼物呀?嗯...要不要好吃的?”

“才不要呢,我想要好看的花,永远不会凋谢的花。”

小 F 和大 F 一起生活的国家—— Fairy 国,可以抽象成一棵 $N$ 个节点的树,每个节点就是一个城市,编号为 $1\ldots N$。

大 F 要游历各个城市,为心爱的小 F 寻找好看的花。

Fairy 国的每个城市都有一座山,山上有恰好一朵永远不会凋谢的花,编号为 $i$ 的城市的花的美丽值为 $B_i$。大 F 要在 $N$ 个城市中选出恰好 $M$ 个,并摘来这 $M$ 个城市中的 $M$ 朵花送给小 F。可是呢,如果树上的一条边连接的两个城市的花都被摘去,这条边就会塌陷,Fairy 国就会陷入分裂,大 F 作为一个善良的人,不希望这样的情况发生。所以,一种摘法合法,当且仅当对于每条边,这条边相连的两个节点的花不被同时摘去

大 F 希望小 F 快乐,小 F 的快乐程度将是摘来的 $M$ 朵花的美丽程度的积。大 F 今天闲着没事,想要求出对于所有合法的摘法,小 F 的快乐程度之和对 $998244353$ 取模的结果。

输入格式

第一行两个正整数 $N$ 和 $M$,表示节点的个数与大 F 要为小 F 摘的花的朵数。

第二行 $N$ 个整数 $B_{1\ldots N}$,表示 $N$ 朵花的美丽程度。

接下来 $N-1$ 行,每行两个正整数,描述树上的一条边,保证形成一棵树。

输出格式

一个整数,表示对于所有合法的摘法,小 F 的快乐程度之和对 $998244353$ 取模的结果。

样例 1

input

5 3
3 5 4 8 11
1 2
1 3
2 4
2 5

output

616

有两种选法,选的点集分别是 ${1,4,5}$ 和 ${3,4,5}$,所以答案是 $3\times 8 \times 11 + 4 \times 8 \times 11$,即 $616$。

样例 2

input

15 6
9 10 2 7 2 4 5 9 3 2 1 9 3 10 7
12 3
4 3
15 8
2 14
7 14
8 14
3 15
6 1
11 1
7 11
9 14
8 5
10 5
13 15

output

8214265

这个样例解释,真要写起来的话就会很长,所以我不解释了,你自己写个暴力看看题意有没有理解错吧 QAQ ,辛苦啦。

数据范围与提示

对于所有数据,保证 $1 \le M \le N \le 8 \times 10^4$,$0 \le B_i < 998244353$。

下表为各个 Subtask 的额外限制与得分,空格表示该项无额外限制。你只有通过一个 Subtask 的所有数据才能得到该 Subtask 的分。

Subtask 编号 $N$ $M$ 特殊限制 分值
1 $\le 500$ $7$
2 $\le 4000$ $15$
3 $\le 10$ $15 $
4 $\forall 1\le i < N$,读入的第 $i$ 条边是 $(i,i+1)$ $18$
5 $\forall 1\le i < N$,读入的第 $i$ 条边是 $(1,i+1)$ $20$
6 $25$