专栏文章
题解:CF1528F AmShZ Farm
CF1528F题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min8k4ff
- 此快照首次捕获于
- 2025/12/01 22:19 3 个月前
- 此快照最后确认于
- 2025/12/01 22:19 3 个月前
首先我们尝试解决关于序列 的计数问题,我们先记 的桶 ,则 需要满足 ,考虑使用组合意义求出 的数量:
我们构造一个根节点为 的,大小为 的有根树,随后我们对这个树进行 dfs,在每一个节点时按照其儿子节点的编号顺序访问,dfs 的同时记录下每一个节点的儿子数量。
根据序列我们可以根据记录的儿子数量反向推导出树的形态(儿子有顺序),之后我们可以直接令根节点为 ,将 这些编号填入其他节点,但是由于 dfs 时有儿子节点的编号顺序,实际上方案数为 。
而我们发现 的合法条件与序列可以重构出树的合法条件是一致的,因此实际上根节点为 的,大小为 的有根树个数就直接等于 序列的个数,也就是 。
接下来我们考虑原问题,我们记 数组为这棵树每个节点的儿子个数,也就是对于每个树加上 的权值。
首先斯特林一下,我们先求权值为 的问题。为了方便我们将这棵树视为根节点任意的有根树,最后将答案除以 即可。
考虑组合意义即为,枚举有根树,然后枚举有根树上的一个节点,然后有序枚举 次这个节点的儿子子树,并将其割掉,的方案数。

不妨考虑如图所示的分割方案,下面两个红色的断边为组合意义中顺序枚举 次断边,而上面蓝色的断边则是断开了枚举的节点与根节点之间的路径,这些操作会使得该图出现恰好 个红色有根树与至少一个蓝色有根树。
不妨直接枚举这至少 个有根树,并且钦定顺序后将后 个有根树标记为红色,其余标记为蓝色。对于蓝色有根树,将其根节点连接到上一个蓝色有根树的根节点上,对于红色有根树,将其根节点连接到最后一个蓝色有根树的根节点上,即可使用这些零散的有根树还原出原本的有根树,顺便把组合意义算上了。
因此我们实际上需要统计的是, 个有标号节点组成了至少 个有序的有根树的方案数,这个可以使用 prufer 序列计数,问题转换为,你有 这些节点,节点 的度数应当大于等于 ,并且节点 的儿子有序的方案数,进而转化为,你有一个长度为 的序列,你可以在序列中填入 的数,要求 的个数大于等于 个并且假设出现 个 则贡献为 。
考虑组合意义,我们不妨在 prufer 序列的末尾添加一个 ,我们从这个特殊的 出发,尝试依次在其余的 之间游走,走到最后一个 的时候可以指向任意一个 ,这样构造出来的方案数刚好为 的个数的阶乘。另一边,考虑一张 个点的基环树森林,我们从节点 出发,往前走出一个 形,将所有访问过的点修改为 ,我们就可以发现这两个模型是形成双射的,因此当不限制 的个数时我们的方案数为 。
重新考虑 的个数,相当于在 之间游走的前 步,我们必须扩展出新的节点,这个可以通过将上面的答案加入下降幂得到,答案为 。当然最后我们要把有根转回无根:。
最后我们使用公式:
将式子代入得到最终答案:
写一个第二类斯特林数·行就做完了!
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...