1 条题解
-
0
自动搬运
来自洛谷,原作者为

cyffff
Not yet for the story on the last page, it's not the end.搬运于
2025-08-24 22:50:31,当前版本为作者最后更新于2024-02-17 08:16:53,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题意
给定一颗叶向树,求所有合法拓扑序 的 之和,对 取模。
。
思路
考虑求一颗树的拓扑序数量,定义 为 子树内拓扑序的数量, 为 子树大小。考虑 不同子树之间无限制,而 必须摆在第一位,显然有
$$g_x=\binom{sz_x-1}{sz_{t_1},sz_{t_2},\dots,sz_{t_k}}\prod_{i=1}^kg_{t_i} $$其中 为 的儿子,多重组合数 意义为把 个数划分成 个大小给定集合的方案数。
根据此式,我们可以算出 表示求 子树去掉 子树后合法拓扑序数量,其中 均为 的儿子,此函数时间复杂度为 ,预处理 逆元即可。
考虑枚举 ,计算它们在所有合法拓扑序中相邻的次数。
- 有祖先后代关系。那么此时 一定是 的父亲,考虑 子树内所有拓扑序,那么 一定在第二位,方案数为 $\text{reduce}(a,b)\cdot\binom{sz_a-2}{sz_b-1}\cdot g_b$。
- 无祖先后代关系。设 , 分别为 的 方向的儿子。由于 相邻,不妨先把 子树拓扑序合并,方案数为 。考虑令 表示 子树拓扑序拼起来有几个是 相邻的,则 $f(fa_u,v)\gets f(u,v)\cdot\text{reduce}(fa_u,u)\cdot\binom{sz_{fa_u}+sz_v-2}{sz_u+sz_v-1}$, 同理。最后 子树内 相邻方案数就是 $f(a',b')\cdot\text{reduce}(c,a',b')\cdot\binom{c-2}{sz_{a'}+sz_{b'}-1}$。
子树内方案数容易推至全树方案数,总时间复杂度 。
考虑 在 转移式中无体现,考虑令原来 时的 记作 ,新定义 为 ,转移式不变,在 时统计贡献,注意不能转移至 有祖先后代关系的状态。子树方案数也可加起来一起推至全树,总时间复杂度 。
- 1
信息
- ID
- 9239
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者