WC2019 数树
题意:
给定 (n,y,op)
问题 (0) :给定两棵树 (T_1,T_2),求给每个点赋值 ([1,y]) 的方案数,使得如果存在一条路径 (p o q) 同时属于两棵树,那么这两个点必须是相同颜色。
问题 (1):给定 (T_2) ,假设 (T_1) 取所有可能的树 (n^{n-2}) 种,求问题 (0) 的答案和。
问题 (2):对于所有可能的 (T_2),求问题 (1) 的答案和。
答案对 (998244353) 取模,保证 (nle 10^5,y<P)
(
m Sol:)
(
m op=0)
对于问题 (0),我们只需要保留两棵树的交,那么这样剩余的联通块的数量设为 (cnt),则答案为 (y^{cnt})
注意到 (cnt=n-|E_1land E_2|)
对于问题 (0),我们暴力统计后者即可。
(
m op=1)
所求为:
[sum_{E_1} y^{n-|E_1land E_2|}
]
设 (A=E_1land E_2)
[sum_A y^{n-|A|}sum_{E_1} [~|E_1land E_2|=A~]
]
等价于统计多少种边集满足 (E_1) 构成树且其与 (E_2) 的交集的大小恰好为 (A)。
容斥原理:
[|lor^n S_i|=sum_{k=0}^n (-1)^{k+1}|land^k S_i|
]
考虑容斥原理的式子,对于 (F(A)=sum_{Ssubseteq A}sum_{Psubseteq S} (-1)^{|S|-|P|}F(P))
证明:
[F(A)=sum_{Ssubseteq A}sum_{Psubseteq S} F(P)cdot (-1)^{|S|-|P|}
]
则对于每个 (F(P)) 有其被计算 (sum_{k=0}^{|A|-|P|} (-1)^k dbinom{|A|-|P|}{k}),对于 (P
e A),有其被计算 (0) 次。
事实上,(|E_1land E_2|=A) 是非常难以处理的,我们希望其变成 (Ssubseteq (E_1land E_2) o Ssubseteq E_1,Ssubseteq E_2) 的形式。
[sum_{E_2} y^{n-|E_1land E_2|}
]
[sum_{E_2} sum_{Ssubseteq (E_2land E_1)}sum_{Psubseteq S} (-1)^{|S|-|P|} y^{n-|P|}
]
[sum_{E_2}sum_{Ssubseteq E_1,Ssubseteq E_2} sum_{Psubseteq S} (-1)^{|S|-|P|} y^{n-|P|}
]
[sum_{P} y^{n-|P|}cdot (-1)^{-|P|}sum_{Psubseteq S}(-1)^{|S|}igg(sum_{Ssubseteq E_1}igg)igg(sum_{Ssubseteq E_2}igg)
]
事实上后者可以简单设为 (G(S))
于是所求为:
[sum_{P} y^{n-|P|}cdot (-1)^{-|P|}sum_{Psubseteq S} (-1)^{|S|} G(S)
]
[sum_{S} G(S)(-1)^{|S|}sum_{Psubseteq S} y^{n-|P|}cdot (-1)^{-|P|}
]
[sum_{S} G(S)y^{n-|S|}sum_{Psubseteq S} (-1)^{|S|-|P|}y^{|S|-|P|}
]
[sum_{S} G(S)y^{n-|S|}sum_{Psubseteq S} (-y)^{|P|}
]
[sum_{S} G(S)y^{n-|S|}sum_{k=0}^{|S|}dbinom{|S|}{k}(-y)^k
]
[sum_{S} G(S)y^{n-|S|}(1-y)^{|S|}
]
前者为多少 (S) 满足其属于 (E_2) 且有 (E_1) 包含于其
所以可以直接视为:
[sum_{Ssubseteq E_2} G(S)y^{n-|S|}(1-y)^{|S|}
]
我们需要统计 (E_2) 的一个边集下的生成树的数量。
不妨设 (S) 构成了若干个联通块,第 (i) 个联通块大小为 (a_i),则有 (G(S)=prod a_i imes n^{k-2}),(k) 为联通块数量。
考虑证明:
我们先将 S 中的所有联通块缩起来,考虑构建一张新图,我们连接 (i o j) 的无向边,但是连接重边数量为 (a_i imes a_j)
那么根据矩阵树定理,我们可以得到其 Kirchhoff 矩阵为:
(egin{bmatrix}a_1(sum a -a_{1})&...& 0\0&a_2(sum a-a_{2})&...0\0&...&0\0&...&a_k(sum a-a_{k})end{bmatrix}-egin{bmatrix}0&...& a_{1} imes a_{k}\a_{2} imes a_{1}&0&...a_{2} imes a_{k}\a_{k-1} imes a_{1}&...&a_{k-1} imes a_{k}\a_{k} imes a_{1}&...&0end{bmatrix})
即:
[egin{bmatrix}a_1(n -a_{1})&...& ...&-a_1 imes a_k\-a_2 imes a_1&a_2(n-a_{2})&...&a_2 imes a_k\...&...&...&...\-a_{k-1} imes a_1&...&a_{k-1} imes(n-a_{k-1})&-a_{k-1} imes a_k\-a_1 imes a_{k}&...&...&a_k(n-a_{k})end{bmatrix}
]
然后我们删除一行一列后的行列式即为答案:
[egin{bmatrix}a_1(n -a_{1})&...& ...\-a_2 imes a_1&a_2(n-a_{2})&...\...&...&...\-a_{k-1} imes a_1&...&a_{k-1} imes(n-a_{k-1})end{bmatrix}
]
根据行列式的性质,我们把每行的一个公共系数 (a_i) 都提取出来后得到:
[prod_{i=1}^{n-1}a_iegin{bmatrix}(n -a_{1})&...& ...\-a_1&(n-a_{2})&...\...&...&...\-a_{1}&...&(n-a_{k-1})end{bmatrix}
]
然后我们将第 (2 o n-1) 列都加到第 (1) 列上会得到:(这里的 (n) 指联通块数量)
[egin{bmatrix}a_k&...& ...\a_k&(n-a_{2})&...\...&...&...\a_k&...&(n-a_{k-1})end{bmatrix}
]
然后我们把每行都减去第一行得到:
[egin{bmatrix}a_k&...& ...\0&n&...\...&...&...\0&...&nend{bmatrix}
]
于是其行列式为 (n^{k-2}a_k),所以答案为:(Big(prod a_i Big)n^{k-2})
将每个联通块视为一个大联通块,设其出现次数为 (k),则其对于答案的贡献为 (a_i^{k+1})
由于每个 (
m prufer) 序列都是合法的,我们等价于求有 (k-2) 个位置,每个数出现次数为 (i) 时对于答案的贡献为 (a_j^{i+1}),求所有方案的权值。
构建每个数的 EGF 为 (F(a_i)),我们得到:
[Ans=prod a_i igg((k-2)![x^{k-2}]prod F(a_i)igg)
]
[Ans=prod a_iigg((k-2)![x^{k-2}]prod e^{a_ix}igg)
]
[Ans=prod a_ifrac{(k-2)!(sum a_i)^{k-2}}{(k-2)!}
]
[Ans=prod a_i imes n^{k-2}
]
回到所求,我们所求为:
[sum_{Ssubseteq E_2} G(S) imes y^{n-|S|}(1-y)^{|S|}
]
[sum_{Ssubseteq E_2} y^{n-|S|}(1-y)^{|S|}n^{k-2}prod a_i
]
我们注意到,联通块数总是等于 (n~-) 边数的。所以有所求为:
[sum_{Ssubseteq E_2} y^{k}(1-y)^{n-k}n^{k-2}prod a_i
]
[frac{(1-y)^n}{n^2}sum_{Ssubseteq E_2}prod a_ifrac{ny}{1-y}
]
设后者为 ( au),则所求为:
[frac{(1-y)^n}{n^2}sum_{Ssubseteq E_2}prod a_i au
]
我们考虑后式的实际意义,视为将原图划分为若干个联通块,每个联通块的大小乘以 ( au) 的贡献和。
考虑组合意义,视为划分成若干个联通块,每个联通块恰好放入一个球,放入球的贡献为 ( au) 的贡献和。
这样可以设 (f_{u,0/1}) 表示当前考虑到点 (u) 的子树,这个联通块是否放入球的方案数。
复杂度 (mathcal O(n))
(
m op=2)
将 (
m op=1) 的式子代入得到:
[sum_{S} G(S)y^{n-|S|}(1-y)^{|S|}
]
其中,(G(S)) 为:
[igg(sum_{Ssubseteq E_1}igg)igg(sum_{Ssubseteq E_2}igg)
]
事实上两者是独立的,设前者为 (F(S)),则有 (G(S)=F(S)^2)
于是所求为:
[sum_S y^{n-|S|}(1-y)^{|S|}n^{2k-4}prod a_i^2
]
[sum_{S} y^k(1-y)^{n-k} n^{2k-4}prod a_i^2
]
注意到 (S) 枚举的是全集,所以所有的可能的划分集合的方式都会被我们枚举到。
实际上问题等价于将 (n) 个数任意划分集合,设第 (i) 个集合的大小为 (a_i),集合总数为 (k),则贡献为:
[y^k(1-y)^{n-k}n^{2k-4}prod a_i^2prod a_i^{a_i-2}
]
[frac{y^k(1-y)^{n-k}n^{2k}}{n^4}prod a_i^{a_i}
]
[frac{(1-y)^{n}}{n^4}prod frac{y imes n^2}{(1-y)}a_i^{a_i}
]
那么实际上这是一个序列划分计数的问题。
最后乘以的 (a_i^{a_i-2}) 是为了表示对于某个联通块保留若干个条边使其构成生成树的方案。
我们构建集合的 EGF,为:
[F(x)=sum_{k=0}^{infty} frac{y imes n^2 imes k^{k}x^k}{(1-y)k!}
]
于是对于某个 (t),满足 (|S|=t) 的方案数的 EGF 为:
[sum_{k=0}^{infty} frac{F(x)}{k!}=exp(F(x))
]
然后跑一遍 EGF 求答案即可。