期望小小结


[NOIP2016]换教室


[P4550]收集邮票 : 看题解


[BZOJ4204]取球游戏

\(m\)个球,一开始每个球均有一个初始标号,标号范围为\(1~n\)且为整数,标号为\(i\)的球有\(a_{i}\)个,并保证\(Σa_{i} = m\)
每次操作等概率取出一个球(即取出每个球的概率均为\(\frac{1}{m}\)),若这个球标号为\(k(k < n)\),则将它重新标号为\(k + 1\);若这个球标号为\(n\),则将其重标号为\(1\)。(取出球后并不将其丢弃)
现在你需要求出,经过\(K\)次这样的操作后,每个标号的球的期望个数。

\(dp[i]:\)编号为\(i\)的球的个数
\(dp[i]=dp[i]+dp[i−1]∗\frac{1}{m}−dp[i]∗\frac{1}{m}\)
\(dp[i]=\frac{1}{m}dp[i-1]+\frac{m-1}{m}dp[i]\)

写成矩阵形式,发现是个循环矩阵(从第2行开始都是由前一行向右移一位得到的)
循环矩阵乘循环矩阵还是循环矩阵
所以只要记录第一行即可


[CH3803]扑克牌

\(54\)张牌,每次随机摸一张,求得到 A张黑桃 B张红桃 C张梅花 D张方块 的期望步数.特别地,大王和小王可以当做任意一种花色,当然,会选择当前的最优策略.

\(f[a][b][c][d][p][q]\)代表已选了\(a,b,c,d,\)王的情况为\(p,q\)时到达目标的期望步数.设最终状态步数为\(0\),则\(f[0][0][0][0]\)即为所求.

这是因为初始情况只有一个,而最终情况有很多种.
所以这道题用到 记忆化搜索

算出已经选的牌\(sum\),则有

\(f[a][b][c][d][p][q]=\frac{13-a}{54-sum}f[a+1][b][c][d][p][q]+\frac{13-b}{54-sum}f[a][b+1][c][d][p][q]\)
\(+\frac{13-c}{54-sum}f[a][b][c+1][d][p][q]+\frac{13-d}{54-sum}f[a][b][c][d+1][p][q]\)
\(+min\{\frac{1}{54-sum}f[a][b][c][d][1∼4][q]\}(if \ p==0)\)
\(+min\{\frac{1}{54-sum}f[a][b][c][d][p][1∼4]\}(if\ q==0)\)


[HDU4035]Maze

一棵树 , 从结点\(1\)出发 , 开始走 , 在每个结点\(i\)都有\(3\)种可能 :
\(1.\)被杀死 , 回到结点\(1\)处 (概率为\(k_i\))
\(2.\)找到出口 , 走出迷宫 (概率为\(e_i\))
\(3.\)和该点相连有\(m\)条边 , 随机走一条
求走出迷宫所要走的边数的期望值

\(1.\)设对每个结点转化为:\(E[i] = Ai*E[1] + Bi*E[father[i]] + Ci;\) $   $方便dfs中转移

\(2.\)推式子要考虑清楚叶节点的情况 , 要记得乘上概率\(\frac{1}{m}\)


[HDU4089]Activation

题意:有\(n\)个人排队等着在官网上激活游戏。Tomato排在第\(m\)个。
对于队列中的第一个人。有一下情况:
1、激活失败,留在队列中等待下一次激活(概率为\(p1\))
2、失去连接,出队列,然后排在队列的最后(概率为\(p2\)
3、激活成功,离开队列(概率为\(p3\)
4、服务器瘫痪,服务器停止激活,所有人都无法激活了。
求服务器瘫痪时Tomato在队列中的位置\(<=k\)的概率

详见原博客


[USACO18DEC]Balance Beam

可以这样理解 : 如果想要从\(i\)跳到一个\(l\)\(r\)停止 , 则期望得分为\(\frac{r-i}{r-l}val[l]+\frac{i-l}{r-l}val[r]\)
类似于在\(l\)点和\(r\)点连一条线 , 如果是凸包的形状 , 则期望得分更优 .
所以凸包上的点是停止点 , 一个点的期望得分\(=\)左边的停止点得分\(*\)概率\(+\)右边的停止点得分\(*\)概率


CF1097D Makoto and a Blackboard

给定 \(n,k\)一共会进行 \(k\) 次操作 , 每次操作会把 \(n\) 等概率的变成 \(n\) 的某个约数
求操作 \(k\) 次后 \(n\) 的期望是多少

\(f[i][j]\) 表示以某质数的 \(i\) 次方经过 \(j\) 次操作后的结果
发现答案是积性的 , 质因数分解后转移
\(f[n][k]∗f[m][k]=f[nm][k] (gcd(n,m)=1)\)

对于\(f[i][j]\)的转移 :
\(f[i][j]=\frac{1}{i+1}\sum_{k=0}^{i}f[k][j-1]\)

大胆猜测积性的性质 , 转化为质因数分解后求解
其实肯定要写出最基础的暴力才能发现一些性质 , 所以不管是什么题都要先把暴力打了再说 ; 积性函数这种猜想还是要打表证明一下
记忆化是一个神奇的东西


[PKUWC2018]随机游走

最值反演 (又称 MinMax容斥 ) : \[max\{S\}=∑_{T⊆S}(−1)^{|T|−1}min\{T\}\]
觉得这是一种很流氓的搞法 , 做法就是字面意思 : 把集合中全部取到的期望\(=\)所有子集中至少有一个被取到的期望的容斥

然后就可以直接转化了 , 设\(f_i=A_i*f_{fa[i]}+B_i\),再推一下式子即可 , 类似于这道题[HDU4035]Maze


[六省联考2017]分手是祝愿

每次随机选择一个开关\(i\) , 会使\(i\)的约数状态全部改变 , 目标把全部灯关上 , 如果当前最优策略步数\(\le K\)则停止随机选 , 直接选\(K\)次 , 求期望步数

任何键的操作都不能被别的键替代 , 这就不再是一道\(DP\)题 , 而转化为一道期望题了

\(f[i]\) 表示从 \(i\) 个需要按的键到 \(i-1\) 个需要按的键的期望操作次数
\(f[i]=\frac{i}{n}+\frac{n-i}{n}\times(f[i]+f[i+1]+1)\)
意思是有\(\frac{i}{n}\)的概率按到正确位置 , 其他的按错了还要按回来
化简得 \(f[i]=\frac{n+(n-i)\times f[i+1]}{i}\)

如果$ cnt>K$直接把 \(f[cnt]+f[cnt-1]+....+f[k+1]\) 作为答案即可


[TJOI2015]概率论

\(n\)个节点的二叉树的叶节点期望个数

\(f_n\)表示 \(n\) 个点的二叉树个数 , \(g_n\)表示 \(n\) 个点的所有 \(f_n\)棵二叉树的叶节点总数

对于每个\(n\)个节点的二叉树 , 都有\(n+1\)个位置可以长出一个新节点 , 这样的每一个长出的新节点都要算进去

所以 \(g_n=nf_{n-1}\)

对于\(f_i\)的递推有形如卡特兰数的式子 , 即枚举左右儿子的大小
\(f_n=\sum_{i=1}^{n-1}f_if_{n-i-1}\)
通项公式 :\(f_n=\frac{\binom{2n}{n}}{n+1}=\frac{4n-2}{n+1}f_{n-1}\)
于是答案即为 $\frac{g_n}{f_n} = \frac{nf_{n-1}}{f_n}=\frac{n(n+1)}{2(2n-1)} $


[LnOI2019][P5249]加特林轮盘赌

轮流开枪打一个环上的人 , 每次\(p\)的概率打死 , \(p\)始终相同 , 从第\(1\)个人开始 , 求第\(k\)个人成为唯一幸存者的概率

19.3.30​

\(f1[i]\)表示\([1,k-1]\)\(i\)轮以内全死的概率 , \(f2[i]\)表示\([k+1,n]\)\(i\)轮以内全死的概率 ,
\(s[i]\)表示某一个人在\(i\)轮以内死掉的概率 , 易知\(s[i]=1-(1-p)^i\)

\(f1[i]=s[i]^{(k-1)}\)
\(f2[i]=s[i]^{(n-k)}\)

枚举第\(k\)个人第\(i\)轮死 , \(ans=\sum{f1[i]*f2[i-1]*(s[i]-s[i-1])}\)

\(10^4\)个人枚举\(10^6\)轮就差不多了 , \(f1\)\(f2\)的预处理是\(O(nl_{og}n)\)

19.4.4​

首先可以容易地得出某一个人在\(i\)轮以内死掉的概率\(s[i]=1-(1-p)^i\) , 以及在第\(i\)轮死掉的概率\(s[i]-s[i-1]\)
也许就能推出连续一段人\(i\)轮死掉的概率\(s[i]^{r-l+1}\)

考虑怎么枚举比较方便 : 枚举自己在第\(i\)轮死 ,
那么在此之前其他的都要死 , 即前面的要在\(i\)轮内死 , 后面的要在\(i-1\)轮内死

枚举自己的状态 , 考虑前面和后面要满足的条件 , 参考[JSOI2018]机器人


[HNOI2015]亚瑟王

\(n\)个技能 , 打\(k\)轮 , 每轮按顺序可能打出某个技能 , 第\(i\)个技能有\(p_i\)概率发动并打出伤害 , 且\(k\)轮内每个技能只能发动一次 , 求期望伤害

19.4.1​

设第\(i\)张牌被使用的概率为\(f[i]\) , 则\(ans=\sum{f[i]*d[i]}\)
\(f[1]=1-(1-p[i])^m\)

\(g[i][j]\)表示前\(i\)张牌中使用\(j\)张的概率 , 则
\[f[i]=\sum{g[i-1][j]*(1-(1-p[i])^{m-j})}\]
即有\(j\)轮不会考虑到\(i\) , 还有\(m-j\)轮会考虑到\(i\) , 这些轮中又要选\(i\)的概率

转化为求\(g[i][j]\)的转移方程

\(1.\)取了第\(i\)张牌 \(g[i][j]=\sum{g[i-1][j-1]*(1-(1-p[i])^{m-j+1})}\)
\(2.\)没取第\(i\)张牌 \(g[i][j]=\sum{g[i-1][j]*(1-p[i])^{m-j}}\)

19.4.4

枚举当前点的思路 :
使用第\(i\)张牌的概率为\(f[i]\)
\(g[i][j]\)表示前i轮中选\(j\)张牌的概率 , 那么就可以推到到当前第\(i\)有多少轮是考虑过了
(利用好题目意思可以想到 , 因为如果轮数没打完是一定要继续打的)
一般复杂的纯期望题都要转化一步 , 求另一个式子的转移方程 , 但也一定要考虑好题目要求的信息的转移方程

\(g[i][j]\)的时候还是枚举当前点状态(取没取第\(i\)张) : 那么前面的要怎么样(已经取了\(j\)张或\(j-1\)张) , 转移条件是怎么样(剩下的轮怎么样)
这里也体现了阶段的重要性 , 即依次考虑每个点


[SCOI2008]奖励关

结束状态很多 , 而初始状态是确定的 , 所以考虑从后往前\(DP\)或者从前往后记忆化搜索
转移可以参考[CH3803]扑克牌的记忆化搜索做法 , 而本题可以用\(DP\)

\(f[i][S]\)表示在第\(1\)轮到第\(i-1\)轮内宝物是否取过的状态为\(S\),第\(i\)轮到第\(K\)轮的最大期望得分
答案就是\(f[1][0]\)

状态的转移无非就是(轮数,已选状态)之间的递推 ; 还有就是一定要把题看清 , 比如这里的每个物品只能得一次分

如果可以取 , \(f[i][S]+=max(f[i+1][S],f[i+1][S|(1<<k-1)]+P_k)\)
否则不能取 , 即\(f[i][S]+=f[i+1][S]\)


[HAOI2018]苹果树

\(n\)个点的二叉树上所有点对距离之和(定义为边数)的期望\(*n!\)的结果

19.3.22​

路径长的期望又乘上 \(n!\) , 因为\(n\)个点的二叉树有\(n!\)种,所以相当于算可能的情况的贡献和.

\(f_i\)表示 \(i\) 个节点的子树,根的深度为 \(1\) 时,所有点的期望深度之和(乘 \(i!\) )的值
\(g_i\)表示 \(i\) 个节点的子树,期望两两路径之和(乘 \(i!\) )的值

\(L,R\) 分别表示左右子树的大小
那么\[ f_i = i * i! + \sum \limits_{L+R=i-1} \binom{i - 1}{L} (f_L * R! + f_R * L!)\]
\[g_i = \sum \limits_{L+R=i-1} \binom{i - 1}{L} (g_L * R! + g_R * L! + f_L * (R + 1) * R! + f_R * (L + 1)* L!)\]

19.4.4

这就是传说中的\(Wearry\)计数神题了吧 .
\(n\)个点的二叉树有\(n!\)种 , 答案乘上\(n!\)提示我们要求所有可能的二叉树的情况的贡献之和

\(g[i]\)表示\(i\)个点的二叉树的所有情况的点对路径之和
常见的套路是枚举左右子树的大小 , 发现要是能维护深度之和就好了
枚举左右儿子的时候 , 对于左儿子\(f[i]\) , 右儿子有\(j!\)种情况 , 对于右儿子\(f[j]\) , 左儿子有\(i!\)种情况

然后对于\(g\)的转移 , \(f[i]\)还需要乘上\(j+1\)代表和其他点组合


[P3600]随机数生成器

[ZJOI2015]地震后的幻想乡

[USACO19FEB]Cow Dating


转载于:https://www.cnblogs.com/lizehon/p/10655232.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值