对于一门古老西欧玄学的初步研究的简要报告
这次先点题:概率期望并没有想象中那么玄学,需要多想多练。
首先,所谓期望,就是一个事件的所有可能的发生概率与结果之积之和。
期望最重要的一条性质是线性性:\(E(aX+bY)=aE(X)+bE(Y)\)。这个是不要求事件相互独立的。
如果事件相互独立的话,还有\(E(XY)=E(X)E(Y)\)。
字面上看以上都非常扯淡。所以需要结合题目来看。
概率期望在OI中往往与DP结合。
jzyz5080 B君的联通
推式子。考虑删掉一条边,会对全体多一个连通块的贡献。而他断掉的概率是一半,总共有\(n-1\)条边,所以结果是\(\cfrac{1}{2}(n-1)+1\),因为最开始有一个连通块。再乘上题目中的系数即可。算是期望的概念题吧。但是也说明了,当总体上不好算时,可以先计算个体的贡献再累加。这种思想就是基于期望的线性性。
agc049aL Erasing Vertices
依然是总体做不好做,考虑一个点的贡献。一个点什么时候可以提供1的贡献?当且仅当能够到达该点的所有点都在该点之后被选到。因为我们是单独考虑一个点的贡献,与一个点有关的点只有能到达它的点,其他点我们就不必考虑了。我认为这一点是很重要的。所以答案式子即为:\(\sum\cfrac{1}{s_i}\),\(s_i\)为能到\(i\)的点数和。我觉得也可以从条件概率的角度理解,就是选一次选到能到\(i\)的点的概率为\(\cfrac{s_i}{n}\),然后也是好理解的。求能到一个点的点,Floyd传递闭包一下。
jzyz1413 绿豆蛙的归宿
把他提前来说,是因为他非常典。他对理解概率DP有十分重要的意义。
我打算先从一个错误思路开始说:考虑设\(dp_x\)表示从\(1\)到\(x\)的期望步数。那么对于一个\(x\)出边指向的点\(y\),这样更新:\(dp_y=dp_y+(dp_x+1)/d_x\),其中\(d_x\)表示\(x\)的出度数。看起来很有道理,但是有一个非常致命的问题:点\(y\)的概率系数之和不一定为\(1\)。我\(dp_y\)表示的是\(1\)到\(y\)的期望步数,结果你告诉我到\(y\)的概率小于\(1\),你在演我吗。
解决策略就是,我们建反图然后倒着做。令\(dp_x\)表示从\(x\)到\(n\)的期望步数。对于一个\(x\)出边指向的点\(y\)(原图中边是反向的),令\(dp_y=dp_y+(dp_x+1)/d_y\),容易发现,这样概率系数之和一定是为\(1\)的。实际意义就是,原图中\(y\)导向\(x\)的概率是\(\cfrac{1}{d_y}\),走这个路的结果是\(n\)到\(x\)的期望步数再多走一步。初状态为\(dp_n=0\)。
事实上,多数概率DP都是这样倒着做的。这一点非常重要,所以我们把字体调大:
多数概率DP都是倒着做的。
因为他往往是对的。目前没遇到过错的。
abc263eL Sugoroku 3
这题也是有代表性的典题。考场上困扰了我很久,因为当时我对倒着做的套路理解仍然不够深刻,一开始做法错误的原因还是概率系数之和不等于\(1\)。错的式子就不放了。
设\(dp_i\)表示从第\(i\)个到最后一个的期望步数。转移的话,一个点从他能到的点转移过来(其实本质还是类似于绿豆蛙的归宿):
可以发现,等号右边居然也包含了\(dp_i\)(当式子右边\(j=0\)时),这可怎么办呢?解个方程就可以了。先把\(a_i+1\)提出来,然后移一下项再把系数除了。最终的式子是:
维护一个后缀和就可以了。这个故事告诉我们:
解方程也是概率期望DP的常见套路。
消元,移项之类的。
abc144fL Fork in the Road
比较有意思的一个题。从贪心的角度想,猜一手删掉对期望贡献最大的边。写一发交了然后wa了。那我猜应该针对每个点讨论一下。写一发交了还是wa了。怎么回事呢。哦,正确结论是先做一遍绿豆蛙的归宿,然后对于每个点分别讨论,删掉他连向期望步数最大的点的那个边。现在考虑证明:对于一个点\(x\),\(dp_x=(\sum dp_y+1)/d_x\),如果删掉了边\((x,v)\),那么\(dp_x=(\sum_{y\neq v} dp_y+1)/d_x\)。显然,\(dp_v\)越大,\(dp_x\)就会变得越小。除了\(x\)以外,删边会影响的点就只剩下\(x\)后面(原图中能走到\(x\))的点,那\(dp_x\)变得越小,后面显然也会越小。这样证明完了。所以说每个点都需要做一遍,时间复杂度是允许的。
abc243fL F - Lottery
典型的概率DP。考场上没有设计好。当时想的是设\(dp_{i,j}\)表示抽了\(i\)次获得\(j\)个奖品的概率,枚举这次抽到了\(k\)个新的,预处理一个抽到\(k\)个的概率,这样转移一下。为什么这样会错,因为中间转移的时候不能保证每次从上一层转移而来。我们设\(dp_{i,j,k}\)表示考虑到前\(i\)人,抽了\(j\)次,抽到了\(k\)个不同的。\(dp_{i,j,k}=\sum_{x=0}^{j}C_{j}^{x}p_i^xdp_{i-1,j-x,k-1}\)。一开始不知道为什么不用乘其他选不到的概率。不认真读题导致的。他一次会且只会中一个。
别忘了组合数的系数。

浙公网安备 33010602011771号