考虑共有k个连通块,第i个联通块的大小为 si ,在最终生成的树的度数为 di 的方案数。
对应到prufer序列上就是
(k−2d1−1,d2−1⋯dk−1)∏sidi=(k−2)!∏(di−1)!∏sidi
看到这个di−1的形式似乎不是很优美,设fi=di−1,即
(k−2e1,e2,⋯,ek)∏sei+1i
这是个多项式定理的形式,多项式定理即为项数多于 1 的情况下
(x1+x2+⋯+xt)m=∑∑ni=t(tn1,n2,⋯,nt)∏xnii
ni 为 xi 这项的系数,一个比较简单的证明:从 m 项中选择 n 个数,那么组合为 (n1,n2,⋯,nt)的方案就有
(tn1,n2,⋯,nt)
种,每种权值为 ∏xnii。
由于∑si=n于是原式即可化为
nk−2∏si
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】