题目背景
原题链接:https://oier.team/problems/X8H。
公元 2236 年 4 月 1 日,收到了 99 封邮件。
这 99 封内容完全相同的邮件的发件人是......她。
题目描述
Masuko 有一棵 n 个结点的树,以 1 为根,每个结点上都有一个 [1,k] 之间的颜色 ci(k≤15),同时给定权值数组 a1,a2,…,ak。
定义两个点 u,v 之间的权值 f(u,v) 如下:
- 设 u=p1,p2,…,pm=v 是 u 到 v 的最短路径,$f(u,v)=\prod_{i\in\{x|\exists j\in[1,m],c_{p_j}=x\}}a_i$。
即 u,v 最短路径上所有出现过的颜色的权值乘积。
你需要对每个 u=1,2,3,…,n。求出 u 子树内,所有无序点对的权值和。具体的,假设 Su 表示所有到根的最短路径上经过 u 的结点组成的集合,你需要输出:
x,y∈Su,x≤y∑f(x,y)
答案对 998244353 取模。
输入格式
第一行,两个正整数 n,k。
第二行,k 个非负整数 a1,a2,…,ak。
第三行,n 个正整数 c1,c2,…,cn。
接下来 (n−1) 行,每行两个正整数 ui,vi,表示一条连接点 ui、vi 的边。
输出格式
仅一行,n 个非负整数,其中第 i 个表示考虑 i 子树内所有无序点对的权值之和,对 998244353 取模后的结果。
5 3
1 4 5
2 1 3 1 1
5 4
5 1
4 2
1 3
107 1 5 3 6
10 4
181 339 132 527
2 1 1 1 1 3 1 1 4 4
8 5
5 2
2 9
9 3
8 4
9 1
1 6
2 10
8 7
183192077 480177 181 181 1810 132 181 1086 1720916 527
提示
【样例解释 #1】
- 当 u=2 时,u 子树内只有 {2},f(2,2)=ac2=1。
- 当 u=4 时,u 子树内有 {2,4},答案为 f(2,2)+f(4,4)+f(2,4)=1+1+1=3。
【数据范围】
本题采用捆绑测试。
- 子任务 1(5 分):n≤1000;
- 子任务 2(10 分):n≤5000;
- 子任务 3(10 分):k=2;
- 子任务 4(10 分):vi=ui+1;
- 子任务 5(10 分):ui=1;
- 子任务 6(20 分):ui 在 [1,i] 中随机生成,vi=i+1;
- 子任务 7(15 分):n≤105;
- 子任务 8(10 分):n≤2×105;
- 子任务 9(10 分):无特殊限制。
对于所有数据,保证 1≤n≤5×105,1≤k≤15,0≤ai<998244353,1≤ci≤k,1≤ui,vi≤n。