A93171.「SNOI2024」树 V 图
提高+/省选-
官方
通过率:0%
时间限制:3.00s
内存限制:1024MB
题目描述
你有一棵 n 个点的无根树,节点的编号为 1,2,…,n。定义树上两点之间的距离 dis(i,j) 为树上 i 点到 j 点的简单路径上的边数。
现在有 k 个关键点 a1,a2,…,ak,对于每个点,我们想求出距离它最近的关键点是哪个点。也就是对于一个点 v,令 f(v) 表示令 $\text{dis}(v, a_i) $ 最小的 i,如果有多个 i 满足条件,那么我们会选择其中最小的 i。
现在,我们给出了 f(1),f(2),…,f(n),问有多少组可能的 (a1,a2,…,ak) 满足条件。由于答案可能很大,输出对 998244353 取模的结果。
输入格式
多组测试数据,第一行一个整数 T 表示数据组数。
对于每组测试数据,第一行两个整数 n,k,表示节点个数和关键点个数。
接下来 n−1 行,每行两个整数 u,v,表示一条树边 (u,v)。
接下来一行,n 个整数,f(1),f(2),…,f(n)。注意:数据 不保证 一定存在一组可能的 (a1,a2,…,ak)。
输出格式
对于每组数据,输出一个整数,表示答案对 998244353 取模的结果。
输入输出样例
输入#1
3 3 3 1 2 2 3 1 2 1 3 2 1 2 2 3 1 2 2 3 2 1 2 2 3 2 1 1
输出#1
0 1 2
输入#2
1 10 5 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 1 1 2 2 3 3 4 4 5 5
输出#2
13
说明/提示
对于所有的数据,保证 1≤T≤10,2≤k≤n≤3×103,$ 1\leq f(i) \leq k$。
具体如下:
| 测试点编号 | n≤ | 特殊性质 |
|---|---|---|
| 1∼2 | 15 | |
| 3∼4 | 3000 | A |
| 5∼6 | 3000 | B |
| 7∼10 | 3000 |
特殊性质 A:保证树是一条链。
特殊性质 B:保证 k=2。