指定叶子数的建树顺序¶
背景故事¶
园区要在带编号的站点之间逐条铺设通道。施工完成后,通道应形成一棵树,并且恰好有指定数量的末端站点。统计不同的施工记录。
(本故事由GPT-6重写)
形式化问题描述¶
有 \(n\) 个带标号 \(1,\ldots,n\) 的顶点。初始没有边,依次添加连接两个不同顶点的无向边,同一对顶点最多一条。最终必须是一棵树,且恰有 \(m\) 个度数不超过 \(1\) 的顶点,称为叶子。
最终边不同,或同一批边的添加顺序不同,均算不同方案。所有顶点包括叶子都有不同标号。求方案数模 \(998244353\) 的非负最小剩余。
约定 \(n=0\) 时只有空序列,叶子数为 \(0\) ;\(n=1\) 时唯一顶点也是叶子。
输入格式¶
一行两个非负整数 n m .
输出格式¶
输出一行方案数模 \(998244353\) 的结果。
样例 1¶
输入¶
3 2
输出¶
6
样例 2¶
输入¶
4 2
输出¶
72
样例 3¶
输入¶
4 3
输出¶
24
样例 4¶
输入¶
1 0
输出¶
0
样例说明¶
三个点的树有 3 棵,每棵有 2 种加边顺序,共 6 种。四个点恰有两个叶子的树是路径,共 12 棵,每棵有 6 种顺序,答案为 72;恰有三个叶子的树是星形,共 4 棵,答案为 24。单个顶点不能有零个叶子。
中心标号不同或边的添加顺序不同,都产生不同记录。
数据范围与分组¶
\(0\le n,m\le10^5\) .不保证 \(m\le n\) ;没有方案时输出零。
规格由 Codex(GPT-6)重新设计:明确空树、孤立点与叶子的定义,以及边序和标号的计数规则。
| 分值 | 额外条件 |
|---|---|
| 20% | \(n\le8\) |
| 30% | \(n\le1000\) |
| 50% | 无额外条件 |
资源限制¶
时间 0.5 秒;内存 128 MiB。时限为标准程序每例五次测量的最慢中位数乘以 2,向上取整到 0.5 秒。