用户工具

站点工具


2022-2023:teams:kunkunkun:2022-nowcoder-6

这是本文档旧的修订版!


2022 牛客暑期多校训练营6

C

首先将所有边从邻接矩阵中取出来,设有$m$条边,然后按边权排序,然后依次枚举每条边,考虑该边的贡献

对于第$i$条边$(u,v,w)$,只需要知道,只使用前$i-1$条边并且使$u,v$不连通的方案数$Cnt$,则该边的贡献为 $$ Cnt*w*2^{m-i} $$

设$F(S)$表示,只使用比当前边小且两端点都在$S$内的边,使$S$成为一个连通块的方案数

设$H(S)$表示,前$i-1$条边中,两端点都在$S$内的边数是多少,这个可以用高维前缀和得到

设$C(S)$表示,只使用前$i$条在$S$内的边,加入第$i$条边恰好使$S$连通的方案数,可以用子集卷积得到 $$ C(S)=\sum_{\substack{u\in x,v\notin x\\u\notin y,v\in y\\x\bigcap y=0\\x\bigcup y=S}}F(x)F(y) $$ 然后可以计算需要的方案数 $$ Cnt=\sum_{u,v\in S}C(S)*2^{H(U\bigoplus S)} $$

然后将当前边加入图中,得到新的$F'(S)$,只有两端点都在$S$内的$F(S)$才会发生变化: $$ F'(S)=F(S)+[u,v\in S]*(C(S)+F(S)) $$

F-Hash

设树的根节点为 $1$,其 $Hash$ 值为 $\displaystyle\sum_{i=1}^n\sum_{j=i+1}^nX^iY^jZ^{lca(i,j)}$,构造一颗满足其 $Hash$ 值的树,节点数小于等于 $50$。
设树有 $37$ 个节点,全部与 $1$ 相连,考虑将节点 $2\sim 37$ 分为 $6$ 组,每组中取两个节点连到另外一个节点上,会有 $C_5^2\cdot 6=60$ 种情况,$6$ 组共有 $60^6$ 种情况,由于 $X,Y,Z$ 随机给出,每种情况都可视为随机的,则存在解的概率为 $1-(\dfrac{Mod-1}{Mod})^{60^6}\approx 1-5.0341\cdot{10^{-21}}$。

2022-2023/teams/kunkunkun/2022-nowcoder-6.1661596493.txt.gz · 最后更改: 2022/08/27 18:34 由 polaraid