咱也不知道笔记该怎么整,咱期望就只知道莽,知道线性性也⑧太知道怎么用。
(1)、定义:
什么“所有情况的概率加权平均值blabla”,一般用处不大?
或者形式化一点,$ m E(X)=sum_i(~P(X=i)cdot i~) $
e.g:Luogu3802 小魔女帕琪
这东西我硬推推出来一个:
的东西。感觉还可以?然后其实就是一种思想?此时总方案数( m S)这东西不应该除以某些奇怪的阶乘,或者说,不需要,因为样本空间可以理解为先发生了(A)和发生了(B)虽然局面一样但是概率独立(大概
这题写过题解,现在复习一遍。大概就是考虑维护一个前缀和,构造数列
然后我们发现它的级数很美妙:
正好就是我们要求的答案。
但此时直接前缀和会有问题,因为多余的实际上是(a_0cdots a_n)那一堆项,所以需要像哈希一样左半边乘上(prod_{i=1}^{r}base_i+prod_{i=1}^{r-1}base_i+cdots +prod_{i=1}^{l}base_i)
(2)、期望的线性性
唔,这个地方其实应用是很广泛的。大概就是对于两个事件( m X,Y),( m E(X+Y)=E(X) +E(Y)) 。
对于这东西的证明大概如下:
(随便粘了个过来也⑧太知道对不对)
然后其实,( m E_S=E(1)+E(2)+E(3)cdots)
观察(E(i)),实际上只与(base_i,base_{i+1})有关,那么每一项的贡献就是(frac{1}{max(base_i,base_{i+1})})。加起来就好。
e.g.: Luogu3924 康娜的线段树
显然我们可以知道维护的就是(sum_{i=1}^{n}frac{val_i}{depth_i}) 。这东西看上去并不是很好维护,但是我们可以考虑离线操作。
考虑爆算出一开始的值,这一块想咋爆算咋爆算。
之后每次修改实际上是在改一些通达叶子结点的链。我们单独考虑每一条这样的链,增加的答案实际上就是每条链的上每个点经过的概率。我们考虑把所有结果最后除以( m maxL),即深度最大值,那么我们需要维护的实际上变成了每个点乘上一个(2^{ m maxL-depth_i})这么一个权,一整条链深度从高到低正好是一组等比数列,所以就是(2^{ m maxL}-1)。
但是注意这个结论有瑕疵,因为并不是每个叶节点的深度都是( m maxh)。而这也比较好办,考虑对于每条链单独特判一下就好。
(3)、诡异的期望模型
3.1 容斥技巧
- 有(n)个随机变量( m X[1…n]),每个随机变量都是从 ( m 1…S) 中 随机一个整数,求( m max(X[1…n]))的期望
实际上可以转化成数学语言:
3.2 等价技巧
实际上是取球问题,大概思路就是取每一个球是独立的,这一点在期望的线性性上体现得比较明显:
- 箱中有(n)个球(1…n),你要从中拿(m)次球,拿了后不放回,求取出的数字之和的期望 。
还是期望的线性性:
-
箱中有(n)个球(1…n),你要从中拿(m)次球,拿了后放回,求取出的数字之和的期望 。
我们考虑每个球独立,拿到的概率还是(frac{m}{n})。所以最后答案与第一问相同。
-
箱中有 n 个球(1…n),你要从中拿 (m) 次球,拿了后以 (p_1) 的概率放回,以 (p_2) 的概率放回两个和这个相同的球,求取出的数字之和的期望。
这个地方可能有点绕。但是就是“球球平等”的思想。或者我们考虑对于放回和不放回,上文已经论证过了没有区别。但是后一个操作,考虑既然我球(A)摸完以后可以多一个,那么球(B)摸完以后以相等的概率也会多一个。所以还是不变,一个球这次增多了其他的也会增多。最终的答案也是(frac{m(n+1)}{2})
3.3 状态转移
……就是游走模型。大概就是说假设一个点的出度为(k),他么他有(frac{1}{k})的概率走到
- 在一条 (n) 个点的链上随机游走,求从一段端走到另一端的期望步数
考虑分阶段进行。根据线性性,( m E(T)=sum_{i=1}^{n-1} E(X_i))。其中( m E(X_i))表示从(i)第一次走到(i+1)的期望步数。
然后我们列方程,考虑一步转移走到了(i+1)还是(i-1):
解出来得( m E(X_i)=2+E(X_i-1))
- 在一个(n)个点的完全图上游走,求从一个点到另一个点期望步数。
完全图的话,每个点走到每个点的概率都是(frac{1}{n-1})。于是这个题就有好多种不同的解法,比如我们用一个推论“概率为(P)的事件期望(frac{1}{P})次后发生”,就可以直接证明( m E=it n-1)
-
在一个(2n)个点的完全二分图上游走,求一个点走到另一个点的期望步数。
解方程的思想,分类讨论是在同侧还是异侧。记(E_a)表示在同侧的期望步数,(E_b)表示在异侧的期望步数。那么考虑有:
[egin{aligned} E_b= frac{1}{n}+frac{n-1}{n}(E_b + 2) end{aligned} ]也是用线性性进行讨论,前者是从(A)侧走到(B)侧的期望步数,就是(frac{1}{n}cdot 1=frac{1}{n})步;后者是从(B)侧又走到(B)侧,步数是(E_b+2),乘上(frac{n-1}{n})的意思是不需要从自己走回自己。
然后关于同侧,即(E_a)由于是二分图所以会有(E_b=E_a+1)。然后最终就可以解出来:
[E_b=n+1,E_a=n ]注意其实先求(E_a)也是可以的,但是主要是转移不好转移,因为一开始的位置实际上也是在同侧,所以对异侧的转移会显得更自然一些。
-
在一张 (n) 个点的菊花图上游走,求从根走到另一个点的期望步数。
也是分类讨论,讨论现在在根节点还是
菊花瓣上叶子节点上。如果在根节点那有(1cdotfrac{1}{n-1})的期望走到,如果在叶子节点上就有((E+2)cdot frac{n-2}{n-1})的期望走到。解一下方程可以发现答案就是(E=2n-3) -
在一棵 (n) 个点的树上游走,问从根走到(x)的期望步数。
唔,其实有好多不同版本,也可以就是从(y)走到(x)的期望步数,因为游走问题是不存在有根树的,所以直接把(y)拽起来当根也没什么问题。然后就是考虑链做法里面的思想,设(f_u)表示(u)第一次走到他父亲的期望步数,然后就有方程
[f_u=frac{1}{deg_u}+frac{1}{deg_u}sum_{vin son _u}(1+f_u+f_x) ]前者是走上去的,后者是不小心走下去的。然后期望的线性性加起来即可。
然后就是高消时间了 -
构造一张(200)个点的无向图,使得上面从( m S)走到( m T)的随机游走期望步数(geq 100,0000)
考虑是一条链的时候大概有(O(n^2))的期望步数,在一张完全图上有(O(n))的期望步数,于是就可以考虑在( m S)上连出一张(100)个点的完全图,然后在一条链连到(T),就是(n^3)的期望步数。具体实现似乎需要微调的亚子233.