「WC2019」数树

文中大写字母均表示树的边集。

\(op = 0\)

答案就是 \(y^{n - |T1\cap T2|}\),随便开个什么东西统计一下就好了。

\(op = 1\)

要求:

\[\sum_{T2} y^{n - |T1\cap T2|} \]

考虑容斥。注意到有 \(f_{S} = \sum_{T\subseteq S}\sum_{R\subseteq T}\left(-1 \right)^{|T| - |R|}f_{R}\)(此处,\(f_S = y^{n - |S|}\)),代入得:

\[\begin {align*} & \sum_{T2} \sum_{S\subseteq T1\cap T2}\sum_{T\subseteq S}\left(-1 \right)^{|S| - |T|}y^{n - |T|} \\ = & \sum_{S\subseteq T1}g_S\sum_{T\subseteq S}\left(-1 \right)^{|S| - |T|}y^{n - |T|} \\ = & \sum_{S\subseteq T1} g_S y^{n - |S|} \sum_{k = 0}^{|S|} \binom{|S|}{k}\left(-y \right)^{|S| - |T|} \\ = & \sum_{S\subseteq T1} g_S y^{n - |S|} \left(1 - y \right)^{|S|} \\ \end {align*} \]

其中 \(g_{S}\) 表示包含边集 \(S\) 的树的数量。

\(S\) 形成了 \(k\) 个连通块,它们的大小序列为 \(\{a_i\}\),易知 \(k = n - |S|\)。关于这个 \(g_S\) 有一个结论,就是 \(g_S = n^{k - 2}\prod a_{i}\)(证明在最后)。代入可得

\[\begin {align*} & \sum_{S\subseteq T1} y^{k} \left(1 - y \right)^{n - k} n^{k - 2}\prod a_{i} \\ = & \frac {\left(1 - y \right)^{n}} {n^{2}} \sum_{S\subseteq T1} \prod \frac {ny} {1 - y} a_{i} \\ \end {align*} \]

\(k = \frac {ny} {1 - y}\),考虑它的组合意义,即从每个连通块中选出一个点给答案乘 \(k\) 的贡献。

考虑 dp,记 \(dp_{u, 0/1}\) 表示考虑 \(u\) 这棵子树,\(u\) 所在连通块是否造成贡献,所有已确定的连通块的贡献的和。转移是显然的,注意转移时候的顺序。

\(op = 2\)

只有我感觉 \(op = 2\)\(op = 1\) 简单吗

类似 \(op = 1\) 地推导,快进掉过程,可以得出关于答案的柿子:

\[\frac {\left(1 - y \right)^{n}} {n^{4}} \sum_{T} \prod \frac {n^{2}y} {1 - y}a_{i}^{2} \]

枚举 \(T\) 似乎不太好处理,于是转而枚举连通块的大小序列 \(\{a_{i}\}\)。对于一个大小为 \(a_{i}\) 的连通块,内部有 \(a_{i}^{a_{i} - 2}\) 种连边方案,那么对于一个连通块,它的生成函数可以表示为:

\[\sum \frac {n^{2}yk^{k}} {1 - y}x^{k} \]

根据 exp 的组合意义,可以得到答案就是:

\[\frac {\left(1 - y \right)^{n}} {n^{4}}n![x^{n}]\exp\left( \sum \frac {n^{2}yk^{k}} {\left(1 - y \right)k!}x^{k} \right) \]


注意特判 \(y = 1\)

Code

Proof

\(n\) 个点,包含 \(k\) 个大小序列为 \(\{a_i\}\) 的连通块的生成树个数。

先把每个连通块看成一个点,考虑它的 \(\text{Prufer}\) 序列。假设连通块 \(i\) 在序列中出现了 \(d_{i}\) 次,则答案为:

\[\left(\prod a_i \right)\left(k - 2 \right)!\sum_{\sum d_{i} = k - 2}\prod \frac {a_{i}^{d_{i}}} {d_{i}!} \]

后面那个东西有一个 \(\sum d_{i} = k - 2\) 的限制,不难想到使用生成函数来描述。具体地,答案为:

\[\left(\prod a_i \right)\left(k - 2 \right)![x^{k - 2}] \prod \sum\frac {a_{i}^{k}} {k!}x^{k} \]

观察后面那个 \(\sum\frac {a_{i}^{k}} {k!}x^{k}\),不就是 \(e^{a_{i}x}\) 吗。所以答案也就是:

\[\left(\prod a_i \right)\left(k - 2 \right)![x^{k - 2}] e^{\sum a_{i}x} \]

容易发现这和前面给出的结论是一致的。

posted @ 2020-12-16 15:04  realSpongeBob  阅读(177)  评论(0编辑  收藏  举报