文中大写字母均表示树的边集。
\(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}
\]
容易发现这和前面给出的结论是一致的。