CFCF2190D.Prufer Vertex
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一棵含有 n≥2 个顶点的树 T,考虑其 Prufer 序列 的生成标准过程:不断重复如下步骤,直到仅剩下两个顶点为止:
- 选择最小编号的叶子结点;
- 将其从树中删除。
已知编号为 n 的顶点始终是最后剩下的两个顶点之一。令 v 表示另一个剩下的顶点。我们定义 T 的 Prufer 顶点为 P(T)=v。
现在给定一个含有 n 个顶点、m 条边的森林。该森林有 k 个连通分量,它们的大小分别为 s1,s2,…,sk。已知将该森林补成一棵树的方案数恰为 nk−2i=1∏ksi。
对于每个 v(1≤v<n),请计算有多少种补边方法能够得到一棵 T,使得 P(T)=v。
由于答案可能很大,请对 998244353 取模后输出。
输入格式
输入包含多组测试数据。第一行为测试用例数量 t(1≤t≤104)。
每组测试数据的第一行为两个整数 n 和 m(2≤n≤2⋅105,0≤m≤n−1),表示森林的顶点数和边数。
接下来的 m 行,每行包含两个整数 u 和 v(1≤u,v≤n,u=v),表示一条无向边。保证这些边构成一棵无环森林。
保证所有测试用例中 n 之和不超过 2⋅105。
输出格式
对于每组测试用例,输出 n−1 个整数,依次表示对于 P(T)=1,2,…,n−1 的情况,将森林补成树 T 的方案数,对 998244353 取模。
输入输出样例
输入#1
3 3 0 5 4 4 2 3 4 1 2 4 5 6 3 1 6 6 4 2 1
输出#1
1 2 0 0 0 1 12 0 1 6 5
说明/提示
在第一个样例中,森林中没有边,可以补全为树的方案有 3 种。例如加入 (1,2) 和 (1,3)。此时叶子结点为 2 和 3,由于 2 编号较小,先移除 2,最后剩下 1 和 3。因此此树的 Prufer 顶点为 1。
在第三个样例中,森林如下所示:

假设我们补上 (3,5) 和 (3,1),得到的树如下:

可以证明此树的 Prufer 顶点为 1。