CSPSMK04D. 树划分(partition)

提交3 通过2
通过率66.7%
文件IO启用
输入文件partition.in
输出文件partition.out
时间限制2000ms
内存限制1024MiB
    ID: 14538 传统题 文件IO 输入文件:partition.in 输出文件:partition.out 2000ms 1024MiB 尝试: 3 已通过: 2 难度: 提高+/省选- 上传者: 标签>C++CSP-S考前模拟

题目描述

题目描述

给定一棵节点数为 nn 的树,需要删除若干条边,使得剩余部分每个连通块的节点数均为 kk 或者 k+1k+1。求有多少种不同的方案满足上述条件,对 998244353998244353 取模。

两种方案被认为是不同的,当且仅当一条边在其中一种方案中被删除,而在另一种方案中没有被删除。

输入格式

本题有多组数据。第一行输入一个整数 TT 表示数据组数,对于每组数据:

第一行输入两个整数 n,kn,k。

接下来的 n−1n-1 行,第 ii 行输入两个整数 ui,viu_i,v_i 表示第 ii 条边连接了节点 ui,viu_i,v_i。

输出格式

每组数据输出一行一个整数,表示答案对 998244353998244353 取模的值。

输入样例

2
8 2
1 2
3 1
4 6
3 5
2 4
8 5
5 7
4 3
1 2
1 3
2 4

输出样例

2
1

说明提示

输入样例 #2

1
2 1
1 2

输出样例 #2

2

输入样例 #3

1
3 1
1 2
2 3

输出样例 #3

3

数据范围

对于 10%10\% 的数据,有 T=1,n=20T=1,n=20。

对于 50%50\% 的数据,有 ∑n≤5000\sum n\leq 5000。

对于另外 10%10\% 的数据,树是一条链。

对于 100%100\% 的数据,$2\leq n\leq 10^5,1\leq k\leq n, \sum n\leq 3\times 10^5$。