LG7445「EZEC-7」线段树 题解

发现求 push_down 期望次数是每个非叶节点的 push_down 概率之和,所以我们只要求出 n1 个非叶节点的概率求和就行了。

设一个线段树上的区间是 [l,r] ,那么一次操作包它的概率是 pi=2×l(nr+1)n×(n+1)

枚举包含的次数,有 ansk=i=0m(mi)pki(1pk)mi×fi,其中 fi 表示 i 次从 [1,V] 中选出一个数,最后的和不为 0 的概率。

也就是 fi=(V+2)i[x0](j=1Vxj)i(V+2)i, 不妨把 V2,有 fi=Vi[x0](j=1V2xj)iVi

考虑怎么对于 i[0,m] 求出 [x0](j=1V2xj)i ,发现这里有个负指数,不好处理,不妨先平移一下:

F(x)=1xV1x要求的是 [x0](F(x)x)i ,也就是 [x0](xF(x))i,这样做是为了方便下面的拉格朗日反演。

G 为上面那个东西,HG 的复合逆。

使用另类拉格朗日反演:[xn]Gk=[xk1]FFn1,带进去有:

[x0]Gi=[xi1]H(x)H(x)=[xi]H(x)H(x)x ,于是我们只要求出 H 就行了。

因为有 G(H(x))=x,所以 HH2x+xHV0,可以用牛顿迭代法求出 H

但注意到多项式 exp 常数太大了,于是考虑取个阈值,在 Vlim 时可以 O(m2V) 算出 fi,否则直接暴力多项式快速幂。

求出 fi 以后,可以通过多项式多点求值或者分治 FFT 计算答案。

本文作者:henrici3106

本文链接:https://www.cnblogs.com/henrici3106/p/16172347.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   henrici3106  阅读(49)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.