题意:有两棵基于同一点集的树,点集大小为 nnn ,两棵树中有 opopop 棵未确定,可以取所有 nn−2n^{n-2}nn−2 种可能。给每个点染上 [1,y][1,y][1,y] 中的一个颜色,要求若 uuu 到 vvv 在两棵树上的路径完全相同,那么 u,vu,vu,v 必须同色。求所有方案数之和 模 998244353998244353998244353。
n≤105n\leq 10^5n≤105
设两棵树的边集为 E1,E2E_1,E_2E1,E2,那么显然答案就是 yn−∣E1∩E2∣y^{n-|E_1\cap E_2|}yn−∣E1∩E2∣。
我这个都没看出来你信吗
op=0
直接用个 set 模拟即可。
op=1
相当于是给定 E1E_1E1,对所有 E2E_2E2 求答案。
即
∑E2∈Treeyn−∣E1∩E2∣\sum_{E_2\in \operatorname{Tree}} y^{n-|E_1\cap E_2|}E2∈Tree∑yn−∣E1∩E2∣
其中 Tree\operatorname{Tree}Tree 表示所有构成树的边集的集合。
枚举交集
∑S⊆E1yn−∣S∣∑E2∈Tree[E1∩E2=S]\sum_{S\subseteq E_1}y^{n-|S|}\sum_{E_2\in \operatorname{Tree}}[E_1\cap E_2=S]S⊆E1∑yn−∣S∣E2∈Tree∑[E1∩E2=S]
令
F(S)=∑E2∈Tree[E1∩E2=S]F(S)=\sum_{E_2\in \operatorname{Tree}}[E_1\cap E_2=S]F(S)=E2∈Tree∑[E1∩E2=S]
G(S)=[S⊆E1]∑E2∈Tree[S⊆E2]G(S)=[S \subseteq E_1]\sum_{E_2\in \operatorname{Tree}}[S\subseteq E_2]G(S)=[S⊆E1]E2∈Tree∑[S⊆E2]
显然有
G(S)=∑S⊆TF(T)G(S)=\sum_{S\subseteq T}F(T)G(S)=S⊆T∑F(T)
由基本的容斥原理,有
F(S)=∑S⊆T(−1)∣T∣−∣S∣G(T)F(S)=\sum_{S\subseteq T}(-1)^{|T|-|S|}G(T)F(S)=S⊆T∑(−1)∣T∣−∣S∣G(T)
我们设一个
C(S)=∑E2∈Tree[S⊆E2]C(S)=\sum_{E_2\in \operatorname{Tree}}[S\subseteq E_2]C(S)=E2∈Tree∑[S⊆E2]
即有多少棵树包含了边集 SSS
那么原式可以写成
∑S⊆E1yn−∣S∣∑S⊆T⊆E1(−1)∣T∣−∣S∣C(T)\sum_{S\subseteq E_1}y^{n-|S|}\sum_{S\subseteq T \subseteq E_1}(-1)^{|T|-|S|}C(T)S⊆E1∑yn−∣S∣S⊆T⊆E1∑(−1)∣T∣−∣S∣C(T)
枚举 TTT
∑T⊆E1C(T)∑S⊆Tyn−∣S∣(−1)∣T∣−∣S∣\sum_{T\subseteq E_1}C(T)\sum_{S\subseteq T}y^{n-|S|}(-1)^{|T|-|S|}T⊆E1∑C(T)S⊆T∑yn−∣S∣(−1)∣T∣−∣S∣
接下来这步有点迷惑,不过也有其他等价的推法
∑T⊆E1C(T)yn−∣T∣∑S⊆T(−y)∣T∣−∣S∣\sum_{T\subseteq E_1}C(T)y^{n-|T|}\sum_{S\subseteq T}(-y)^{|T|-|S|}T⊆E1∑C(T)yn−∣

最低0.47元/天 解锁文章
2646

被折叠的 条评论
为什么被折叠?



