Loading

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)\)

posted @ 2026-01-28 17:29  STDJCY  阅读(6)  评论(0)    收藏  举报