LOJ 3399.「2020-2021 集训队作业」Communication Network 解题报告
LOJ 3399.「2020-2021 集训队作业」Communication Network
纯狗屎,考虑推一个柿子:
\[\begin{aligned}
\mathrm{res} &= \sum_{T_2}|T_1\cap T_2|\cdot 2^{|T_1\cap T_2|} \\
\end{aligned}
\]
直接运用子集容斥式子: \(f(S)=\sum\limits_{T\subseteq S}(-1)^{|S|+|T|}\sum_{P\subseteq T}f(P)\),有:
\[\begin{aligned}
\mathrm{res} &= \sum_{T_2}|T_1\cap T_2|\cdot 2^{|T_1\cap T_2|} \\
&= \sum_{T_2}\sum_{P}[P=(T_1\cap T_2)]\times \dots \\
&= \sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-1)^{|S|+|T|}\sum_{T\subseteq S} |T|2^{|T|} \\
&= \sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-1)^{|S|}\sum_{T\subseteq S} (-1)^{|T|}|T|2^{|T|} \\
&= \sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-1)^{|S|}\sum_{k=0}^{|S|} \binom{|S|}{k}k(-2)^{k} \\
\end{aligned}
\]
哦不似乎卡住了,因为后面的柿子中存在 \(k\) 的影响导致我们不能直接二项式定理,考虑用组合数缩放公式,\(\binom{|S|}{k}\cdot k=\binom{|S|-1}{k-1}\cdot |S|\),带入后就可以用二项式定理合并了,得到:
\[\begin{aligned}
\mathrm{res}&=\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-1)^{|S|}\sum_{k=0}^{|S|} \binom{|S|}{k}k(-2)^{k} \\
&=\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-1)^{|S|}\sum_{k=0}^{|S|} \binom{|S|-1}{k-1}|S|(-2)^{k} \\
&=\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}|S|(-1)^{|S|}\sum_{k=0}^{|S|} \binom{|S|-1}{k-1}(-2)^{k} \\
&=\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}|S|(-1)^{|S|}\sum_{k=0}^{|S|-1} \binom{|S|-1}{k}(-2)^{k+1} \\
&=\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-2)|S|(-1)^{|S|}\sum_{k=0}^{|S|-1} \binom{|S|-1}{k}(-2)^{k} \\
&=\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-2)|S|(-1)^{|S|}\sum_{k=0}^{|S|-1} \binom{|S|-1}{k}1^{|S|-1-k}(-2)^{k} \\
&=\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}(-2)|S|(-1)^{|S|}(-1)^{|S|-1} \\
&=2\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}|S| \\
\end{aligned}
\]
接下来我们试图将 \(S\) 提到外面,使得我们对 \(T_2\) 的方案数可以更简单的表示:
\[\begin{aligned}
W &= 2\sum_{T_2}\sum_{S\subseteq(T_1\cap T_2)}|S| \\
&= 2\sum_{S\subseteq T_1}|S|\sum_{T_2\supseteq S}1 \\
&= 2\sum_{S\subseteq T_1}|S|f(T) \\
\end{aligned}
\]
发现了,\(f(T)\) 的意义就是【边集包含 \(S\) 的生成树的个数】。
根据经典结论:
对于一个边集 \(S\),其将树划分为 \(k\) 个连通块 \(\set{a_1,a_2,\dots,a_k}\),则满足条件的生成树个数为:
\[f(S)=n^{k-2}\prod_{i=1}^k a_i \]
由此:
\[\begin{aligned}
W &= 2\sum_{S\subseteq T_1}|S|f(T) \\
&= 2\sum_{S\subseteq T_1}|S|n^{k-2}\prod_{i=1}^k a_i \\
&= \frac{2}{n^2}\sum_{S\subseteq T_1}|S|\prod_{i=1}^k na_i \\
\end{aligned}
\]
直接组合意义这个东西,其相当于给定点集 \(S\),其将树划分成若干连通块,在每个连通块中选一个点,其会产生乘 \(n\) 的贡献,然后再在 \(S\) 中选择一条边,求所有 \(S\) 的选择方案之和。
考虑 \(\mathrm{dp}\) 这个东西,\(f_{u,0/1,0/1}\) 表示划分好 \(u\) 子树内的边集,\(u\) 所在的连通块是否选择了点,且 \(S\) 中是否已经确定选择了一条边。
- 将 \((u,v)\) 选入 \(S\)。分开了 \(u,v\),则要求 \(v\) 的连通块必须选点:
\[f^\prime_{p,x+y}\leftarrow f_{u,p,x}\times f_{v,1,y} \quad(x+y\le 1)
\]
-
不将 \((u,v)\) 选入 \(S\)。则 \(u,v\) 处于同一个连通块
- 随便缝起来
\[f^\prime_{p+q,x+y}\leftarrow f_{u,p,x}\times f_{v,q,y}\quad (p+q\le 1,x+y\le 1) \]- 在 \(u,v\) 连通块内部的候选边集中选一个作为标记的那条边
\[f^\prime_{p+q,1}\leftarrow f_{u,p,0}\times f_{v,q,0}\quad (p+q\le 1) \]
最后答案就是 \(\frac{2}{n^2}f_{1,1,1}\)。时间复杂度 \(O(n)\)。

浙公网安备 33010602011771号