专栏文章

题解:CF2161F SubMST

CF2161F题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@min8u3do
此快照首次捕获于
2025/12/01 22:27
3 个月前
此快照最后确认于
2025/12/01 22:27
3 个月前
查看原文
接下来对于一个点集 SS,对于在 SS 的虚树上出现的所有点,xSx\notin S 是虚点,xSx\in S 是实点。
首先你会看错题,以为只需要求虚树大小,答案是 i=2n(2sizei1)×(2nsizei1)\sum_{i=2}^{n} (2^{\text{size}_i}-1)\times(2^{n-\text{size}_i}-1),其中 sizei\text{size}_i 表示以 11 为根的 ii 的子树的大小。
但事实上不是这样的,因为那些虚树上的虚点不存在,所以不能直接用边连通。
我们考虑对于每个虚点算他额外的贡献。我们先定义对于虚点算哪些贡献:对于点集 SS,把其生成树上的边放在原树上,删去我们已经计算过的虚树的边,会剩下若干条链,容易发现这些链的一段是虚点一段是实点,我们计算所有链头挂在这个虚点上的链的贡献。
对于一个虚点 xx,设他在虚树上的度数为 dxd_x,根据定义 dx3d_x\geq 3。考虑找到一个实点 uu 满足 disu,x\text{dis}_{u,x} 最小,贡献为 (dx2)×disu,x(d_{x}-2)\times \text{dis}_{u,x},即所有链都是 uxu\to x
证明是容易但是繁琐的,这里不赘述。至于为什么是 dx2d_x-2,因为 disx,u\text{dis}_{x,u} 已经算过一次,而且 xux\to u 没有贡献。
接下来是简单的。枚举 xxdis=i=1[idis]\text{dis}=\sum_{i=1}[i\leq\text{dis}],我们枚举 ii,对于 xx 的每个儿子统计出 depi\text{dep}\geq i 的数量。
dx=0d_{x}=0dx=1d_{x}=1 的贡献单独算,dx=2d_{x}=2 不用管,因为 dx2=0d_{x}-2=0
2-2 拿出来之后需要求 dx×方案数d_x\times 方案数,组合意义是钦定一个子树里面有实点的方案数,所以 =y(2sizey1)×2msizey=\sum_{y}(2^{\text{size}_y}-1)\times 2^{m-\text{size}_y},其中 sizey\text{size}_y 是我们统计的 depi\text{dep}\geq i 的数量,mm 是其总数。
时间复杂度 O(n2)O(n^2)

评论

0 条评论,欢迎与作者交流。

正在加载评论...