题目描述
给定一棵有 N 个顶点的无向树,顶点编号为 1,2,…,N。记 d(u,v) 为顶点 u 与 v 之间的简单路径包含的边数,特别地,d(u,u)=0。
对于正整数 K,若 1,2,…,N 的排列 p1,p2,…,pN 同时满足以下条件,则称其为好排列:
- 对所有 2≤i≤N,有 d(pi−1,pi)≤K。
- 对所有 1≤i<j≤N,有 d(1,pi)≤d(1,pj),即排列中顶点到顶点 1 的距离非递减。
记好排列的数量为 f(K)。给定 Q 个正整数 K1,K2,…,KQ,依次求出 f(K1),f(K2),…,f(KQ) 对 109+7 取模的结果。
输入格式
第一行包含一个整数 T,表示测试用例的数量。
对于每组测试用例:
- 第一行包含两个整数 N,Q。
- 接下来 N−1 行,每行包含两个整数 u,v,表示树中连接顶点 u 和 v 的一条无向边。保证这些边构成一棵树。
- 最后一行包含 Q 个整数 K1,K2,…,KQ。
输出格式
对于每组测试用例输出一行,包含 Q 个整数,依次为 f(K1),f(K2),…,f(KQ) 对 109+7 取模后的结果。
数据范围
对于所有输入:
- 1≤T≤5×105。
- 1≤Q≤N≤5×105。
- 1≤u,v≤N,1≤Ki≤N。
- 一个输入文件内,所有测试用例的 N 之和不超过 5×105。
子任务
| 编号 |
分值 |
缩减范围 |
| 1 |
8 |
∑N≤10 |
| 2 |
12 |
Q≤min(2,N) Ki≤min(2,N) |
| 3 |
20 |
∑N≤3000 Q≤min(5,N) |
| 4–5 |
60 |
— |
样例 1
2
3 3
1 2
1 3
1 2 3
6 3
1 2
1 3
3 4
3 5
3 6
1 2 3
0 2 2
0 6 12
样例 1 说明
第一棵树中,深度非递减的排列只有 [1,2,3] 和 [1,3,2]。两者最后相邻的两个顶点距离均为 2,所以 K=1 时均不合法,K=2,3 时均合法。
第二棵树中,顶点 2,3 必须排在顶点 4,5,6 之前。K=2 时,顶点 2 不能直接接到 4,5,6 中的任何一个,因此前面只能排成 [1,2,3],最后三个顶点有 6 种顺序。K=3 时,2,3 的两种顺序都可使用,共有 12 种好排列。