「题解」CF1060F Shrinking Tree(神仙计数 DP)

困难的。

考虑对于每个点 \(i\),将它提至根,求所有操作方案的概率和。

考虑 \(i\) 现在已经和 \(u\) 点合并起来,但是还没有和 \(u\) 的子结点合并(下文称这种情况为 到达 \(u\))。

考察 \(u\) 的一个儿子 \(v\),我们仅考虑 \(v\) 的子树和 \((u,v)\) 边的方案数,且 \(i\) 到达 \(u\)\(v\) 子树内还剩 \(j\) 条边,记为 \(f_{v,j+1}\)\(i\) 到达 \(u\) 时子树内还剩 \(j\) 条边,记为 \(g_{u,j}\)

观察 \(f_{v,j}\) 的转移,有两种情况:

  • \(i\) 先到达 \(u\),又和 \(v\) 合并:
    • 此时方案数为 \(0.5\sum_{k=0}^{j-1}g_{v,k}\),即枚举 \(u,v\) 合并的时间。
  • \(u\)\(v\) 合并,\(i\) 又到达 \(u\)
    • 此时方案数为 \((\text{siz}_v-j)g_{v,j}\),即枚举 \(u,v\) 合并的时间。

观察 \(g\) 的转移,即把所有子树的 \(f\) 缝合:

对于子树的 \(f\) 的操作,分为两种类型:\(i\) 到达 \(u\)\(v\) 子树之前的、之后的操作边。

形象地,

https://cdn.luogu.com.cn/upload/pic/59362.png

(来自 @ywy_c_asm)

连续段是不会断开的。

\(f_{v,x}g_{u,y}\dbinom{x+y}{x}\dbinom{\text{siz}_v-x+\text{siz}_u-y-1}{\text{siz}_u-y-1}\to g_{u,x+y}\)

使用树上背包的套路,时间复杂度 \(\mathcal{O}(n^4)\),前缀和优化 \(\mathcal{O}(n^3)\)

posted @ 2023-05-02 18:54  Network_Error  阅读(13)  评论(0)    收藏  举报