CF1060F
题意见 \(link\)
Solution
先枚举根为 \(\mathbf{root}\)
类似的,我们将 "删边" 视为合并两个点,如果其中存在 \(u\) 所在的连通块,那么产生 \(\frac{1}{2}\) 的贡献。
设 \(f_{u,i}\) 表示考虑以 \(u\) 为根的子树,所有可能的删边序列,仅考虑最后 \(i\) 条边的情况下的贡献和,答案即 \(\frac{f_{root,n-1}}{(n-1)!}\)
考虑计算答案,现加入一条 \(u\to v\) 的边,这样我们需要枚举这条边是第倒数 \(j\) 条被合并的边,同时考虑转移得到 \(f_{u,i}\)。
- 假定 \(j\le i\),那么我们发现在 \(j\) 之前合并的边都对答案没有影响,所以有贡献的仅为最后 \(j-1\) 条边,故 \(f_{u,i}\leftarrow f_{v,j-1}\times \frac{1}{2}\)
- 假定 \(j> i\),那么这条边对答案没有贡献,且有贡献的只有最后 \(i\) 条边,故 \(f_{u,i}\leftarrow f_{v,i}\)
我们令 \(g_i\) 表示只考虑这棵子树时的 \(f_{u,i}\)
现在考虑合并两颗子树的答案,我们只需要枚举最后 \(i\) 条边来自此子树的边的数量,令 \(i'=i+j\),那么不难得到:
\[f_{u,i'}\leftarrow \binom{i+j}{i}\binom{e_v+e_{bef}}{e_v}g_{i}f_{u,j}'
\]
这个部分的复杂度是 \(\mathcal O(n^2)\),预处理 \(g_i\) 的复杂度可以做到 \(\mathcal O(n^2)\) 的,总体复杂度应该\(\mathcal O(n^3)\) 才对吧。
实现的不好就 \(\mathcal O(n^4)\) 了,具体随便。
u1s1 这个状态真的想不到啊 TAT