模考T3题解

xtr 哥哥还是太厉害了!好妙的题。

这个题统计的是 \(k\) 次方的期望。一个套路是在做 DP 的时候记录 \(0\)\(k\) 次方,然后使用二项式定理合并。

60pts

我们考虑算出答案和再除以 \(2^n\)。(我在这一步就寄了)

考虑在树上 DP,\(f_{u,k}\) 表示以节点 \(u\) 为根的联通块的边数的 \(k\) 次方的总和。

我们考虑初始把联通块设为 \(u\) 一个点,一个一个添加子树

对于 \(u\) 为根的联通块,若其有 \(e_u\) 条边,合并上一个有 \(e_v\) 条边的 \(v\) 为根的联通块,则新联通块的边数为 \(a+b+1\)

发现 \((a+b+1)^k=\sum_{i=0}^na^i(b+1)^{k-i}\),这启发我们记录 \(g_{u,k}\) 表示以节点 \(u\) 为根的联通块的边数加一 \(k\) 次方的总和。

\[(x+1)^k=\sum_{i=0}^k C_k^ix^i \]

于是

\[g_{u,k}=\sum_{i=0}^k C_k^if_{u,i} \]

设新 \(f\)\(h\)

我们发现对于新联通块来讲,她可能只包含 \(u\) 原本的联通块或只是 \(v\) 的联通块连上一条 \((u,v)\)。于是我们也要加上这种情况。

\[h_{u,k}=f_{u,k}+g_{v,k}+\sum_{i=0}^kf_{u,i}g_{v,k-i} \]

考虑边界条件,在只有一个点的时候边数显然为 \(0\),但 \(f_{u,0}\)\(0^0\)。我们发现因为是要套二项式定理,\((x+0)^k=x^k0^0\) 所以此处应取 \(0^0\)\(1\)

这是一个 \(\mathcal O(nk^2)\)

100pts

考虑优化她,看到 \(k\) 次方想到斯特林数(?)

\(f\)\(g\) 的定义改成 \(k\) 次下降幂的期望。

我们发现 \(f\)\(g\) 在次数大于 \(sz\) 的时候为 \(0\),因为边数最多为 \(sz-1\),而下降幂次大于底数时为 \(0\),于是我们在转移 \(f\) 的时候可以变成均摊 \(\mathcal O (k)\)

在转移 \(g\) 的时候发现 \(g_{u,k}=\sum_{i=0}^kf_{u,i}1^{\underline k-i}\),在 \(k-i>1\) 时为 \(0\)。于是转移只要转移两项就行了,变成 \(\mathcal O(k)\)

最后把 \(f_{u,k}\)\(x^n=\sum_{i=0}^nS_n^ix^{\underline i}\) 还原即可。

\(\mathcal O(nk)\)

posted @ 2025-07-12 19:03  Infter  阅读(35)  评论(0)    收藏  举报