Problem. G

题意简述:

给定一棵\(n\)个点的带正整数边权的无根树。
选择一个正整数\(k\),并在树上选择不相交的两个大小为\(k\)的点集,分别染成红色和蓝色。然后取出这\(2k\)个节点,任意一个红色点和蓝色点之间建一条新的边,边权为这两个点的树上距离,求出这个二分图的最小权匹配。
现在请求出对于所有\(k\),所有染色方案构造出的二分图的最小权匹配的和对\(998244353\)取模的结果。

数据范围:

\(n\le100000\)

解法:

首先我们知道红点蓝点的方案是完全对称的。
默认固定\(1\)号点为根。
假如我们现在确定了一个染色方案,那么对于一条边\((u,v,w)\),它的最少经过次数为切掉这条边之后形成了两个连通块中红点数目之差。
显然对于一个染色方案,我们可以构造一组匹配使得每条边的经过次数都达到下界,这也就是最小权匹配。
那么我们可以考虑一个\(O(n^2)\)的dp做法。
先求出\(a_i\)表示⼦树大小为\(i\)的所有点到其⽗亲的边的边权和。
然后求出\(f_{i,j}\)表示给大小为\(i\)的连通块染色,红点比蓝点多\(j\)个的方案数。
很显然红点蓝点是对称的,所以\(f_{i,j}=f_{i,-j}\)
转移是非常显然的:
\(f_{i,j}=f_{i-1,j-1}+f_{i-1,j}+f_{i-1,j+1}\)
由此得到答案的表达式:
\(ans=2\sum\limits_{i=1}^na_i\sum\limits_{j\ge1}jf_{i,j}f_{n-i,j}\)
\(g_i=\sum\limits_{j\ge1}jf_{i,j}f_{n-i,j}\),那么答案的表达式就是:
\(ans=2\sum\limits_{i=1}^na_ig_i\)
考虑\(g_i\)的递推关系:
\(g_i=\sum\limits_{j\ge1}j(f_{i-1,j-1}+f_{i-1,j}+f_{i-1,j+1})f_{n-i,j}\)
\(=f_{i-1,0}f_{n-i,1}+\sum\limits_{j\ge1}(j+1)f_{i-1,j}f_{n-i,j+1}+jf_{i-1,j}f_{n-i,j}+(j-1)f_{i-1,j}f_{n-i,j-1}\)
\(=f_{i-1,0}f_{n-i,1}+g_{i-1}+\sum\limits_{j\ge1}f_{i-1,j}f_{n-i,j+1}-f_{i-1,j}f_{n-i,j-1}\)
\(=g_{i-1}+\sum\limits_{j\ge1}f_{i-1,j-1}f_{n-i,j}-f_{i-1,j}f_{n-i,j-1}\)
\(h_{u,v}=\sum\limits_{j\ge1}f_{u,j-1}f_{v,j}\),代入上式得到:
\(g_i=g_{i-1}+h_{i-1,n-i}+h_{n-i,i-1}\)
再考虑\(h_{u,v}\)的递推关系:
\(h_{u,v}=\sum\limits_{j\ge1}f_{u,j-1}f_{v,j}\)
\(=\sum\limits_{j\ge1}f_{u,j-1}(f_{v-1,j-1}+f_{v-1,j}+f_{v-1,j+1})\)
\(=f_{u,0}f_{v-1,0}-f_{u,1}f_{v-1,1}+\sum\limits_{j\ge1}f_{v-1,j}(f_{u,j}+f_{u,j-1}+f_{u,j-2})\)
\(=f_{u,0}f_{v-1,0}-f_{u,1}f_{v-1,1}+h_{u+1,v-1}\)
注意到要用到的\(h_{u,v}\)满足\(u+v=n-1\),因此如果我们先求出\(f_{i,0},f_{i,1}\),那么就可以\(O(n)\)推出要用到的\(h_{u,v}\),进而推出\(g_i\)
而求\(f_{i,0},f_{i,1}\)是很简单的。
根据定义我们有:
\(f_{i,0}=\sum\limits_{j\ge1}{i\choose2j}{2j\choose j},f_{i,1}=\sum\limits_{j\ge1}{i\choose 2j+1}{2j+1\choose j}\)
考虑将其化为卷积形式:
\(f_{k,0}=k!\sum\limits_{i+2j=k}\frac1{i!(j!)^2},f_{k,1}=k!\sum\limits_{i+2j+1=k}\frac1{i!j!(j+1)!}\)
那么使用NTT就可以以\(O(n\log n)\)的时间复杂度求出\(f_{i,0},f_{i,1}\)了。

猜你喜欢

转载自www.cnblogs.com/cjoierShiina-Mashiro/p/12307859.html