.article-info-tag,button{text-transform:uppercase}.day,.postMeta,.postSticky{position:relative}.postTitle a:link,html{-webkit-tap-highlight-color:transparent}#blog-calendar,.code-copay-btn,.code-hljs-len,.hidden{visibility:hidden}#EntryTag,#blogTitle h1{margin-top:20px}#EntryTag a,.postSticky{background:#6fa3ef}#blogTitle h1 a:hover,.dayTitle a,a,a:active,a:link,a:visited{color:#5c8ec6}#calendar table a:hover,#navList a:hover,.postDesc a:hover,a:active,a:hover,a:link,a:visited,button{text-decora…ryTag a:visited{color:#666}#BlogPostCategory a,#EntryTag a{height:20px;line-height:20px;color:#fff!important;padding:3px 5px;border-radius:3px;margin:2px 5px 0;text-decoration:none;font-size:14px}#BlogPostCategory a:hover,#EntryTag a:hover{transition:all .3s linear 0s;opacity:.8}#topics .postDesc{padding-left:0;width:100%;text-align:left;color:#666;margin-top:5px;background:0 0}.feedbackListSubtitle-louzhu:after,.feedbackListSubtitle:after,.feedbackListSubtitle:before{top:11px;right:100%;left:-1

P4841 [集训队作业2013]城市规划 题解

\(\textbf{Description}\)

\(n\) 个点的有标号的无向连通图数目。
\(\text{restrictions}:1\le n\le1.3\times10^5\)

\(\textbf{solution}\)

我们设 \(g_i\) 表示有 \(i\) 个点的有标号无向图数目,易得 \(g_i = 2^{C_n^2}\)

考虑枚举每两个点之间是否连通。

\(f_i\) 表示有 \(i\) 个点的连通图数目(即答案所求)。

则可得:

\[g_n = \sum_{i=1}^n C_{n-1}^{i-1}f_i g_{n-i} \]

考虑 \(1\) 号点所处的连通块大小 \(i\),则需要从 \(n-1\) 个点中选出 \(i-1\) 个点,剩下 \(n-i\) 个点随便排列,即 \(g_i\) 的含义。

推一波式子:

\[g_n = \sum_{i=1}^n C_{n-1}^{i-1}f_i g_{n-i}\\ g_n = (n-1)!\sum_{i=1}^n \frac {f_i} {(i-1)!} \times \frac {g_{n-i}} {(n-i)!} \\ \frac {g_n} {(n-1)!} = \sum_{i=1}^n \frac {f_i} {(i-1)!} \times \frac {g_{n-i}} {(n-i)!} \]

\[F(x) = \sum_{i=1}^{+\infty}\frac {f_i} {(i-1)!}x^n\\ G(x) = \sum_{i=1}^{+\infty}\frac {g_i} {(i-1)!}x^n\\ H(x) = \sum_{i=0}^{+\infty}\frac {g_i} {i!} x^n \]

\[F = H*G^{-1}\\ f(x) = \frac {F(x)} {(n-1)!} \]

\(G,H\) 可以预处理,套个多项式求逆的板子即可。

posted @ 2021-05-07 20:07  feicheng  阅读(24)  评论(0编辑  收藏  举报