21.6.18 t2

tag:概率期望,bit,dfs序


考虑每一条实链 \((u,v)\)(\(v\)\(u\) 的祖先) 的贡献。如果最终有一条极长实链 \((u,v)\),那么对于 \(v\) 子树中所有点,\(u\) 一定是操作序列中最后一个;同样的对于 \(fa_v\) 子树中所有点,\(v\) 一定不是操作序列中最后一个。

\(s_x=\sum_{lca(x,i)=x} a_i\),那么这个概率就等于 \(\frac{s_u}{s_v}\cdot(1-\frac{s_v}{s_{fa_v}})\)

可以这么理解,\(P=\frac{\text{x为最后一个的排列个数}}{\text{排列个数}}=\frac{\text{x为第一个的排列个数}}{\text{排列个数}}\)(翻转一下就可以一一对应)

所以答案就是

\[\sum_{lca(u,v)=v}\frac{s_u}{s_v}\cdot(1-\frac{s_v}{s_{fa_v}})\cdot(d_u-d_v)^k \]

暴力展开以后可以得到若干项,且每一项都是(一个常数)*(关于 \(u\) 的式子)*(关于 \(v\) 的式子),所以可以枚举 \(u\),用数据结构维护 \(v\)

对于一次修改只会影响 \(O(1)\) 个点,直接暴力更新答案就行。

复杂度 \(O((n+m)klogn)\)

posted @ 2021-06-24 16:37  oisdoaiu  阅读(27)  评论(0编辑  收藏  举报